(57)【要約】【課題】  ロボットを制御するプログラム、または、データを更新または追加により生じる不具合を抑制する。【解決手段】  出力コマンドデータ更新部２０１は、出力コマンドデータを構成する出力リソースである姿勢、Ｌｅｇ出力データ名、Ｌｅｄ出力データ名、およびＳｏｕｎｄ出力データ名の各項目に有無のパターン（ファイル名として記録がある場合、その項目は有りと判定し、「−」が記録されている場合、その項目は無しと判定する）を比較し、それらのパターンが一致する場合、不具合が無いものとし、出力コマンドデータの更新する。本発明は、ロボット制御システムに適用することができる。【選択図】  図６
2005074601.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納手段と、
前記コマンドの更新データを取得する取得手段と、
前記取得手段により取得された前記コマンドの更新データの出力リソースの有無のパターンと、前記格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較手段と、
前記比較手段の比較結果に基づいて、前記格納手段に格納されているコマンドのデータを、前記取得手段により取得された前記コマンドの更新データに更新する更新手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記コマンドの更新データの出力リソースの有無のパターンには、それぞれ符号が振られており、
前記比較手段は、前記取得手段により取得された前記コマンドの更新データの符号と、前記格納手段に格納されているコマンドのデータの符号とを比較することにより、前記取得手段により取得された前記コマンドの更新データの出力リソースの有無のパターンと、前記格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納ステップと、
前記コマンドの更新データを取得する取得ステップと、
前記取得ステップの処理で取得された前記コマンドの更新データの出力リソースの有無のパターンと、前記格納ステップの処理により格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、
前記比較ステップの処理での比較結果に基づいて、前記格納ステップの処理により格納されているコマンドのデータを、前記取得ステップ処理で取得された前記コマンドの更新データに更新する更新ステップと
を含むことを特徴とする情報処理方法。
【請求項４】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、
前記コマンドの更新データの取得を制御する取得制御ステップと、
前記取得制御ステップの処理で取得が制御された前記コマンドの更新データの出力リソースの有無のパターンと、前記格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、
前記比較ステップの処理での比較結果に基づいて、前記格納制御ステップの処理により格納が制御されているコマンドのデータを、前記取得制御ステップ処理で取得が制御された前記コマンドの更新データに更新する更新ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項５】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、
前記コマンドの更新データの取得を制御する取得制御ステップと、
前記取得制御ステップの処理で取得が制御された前記コマンドの更新データの出力リソースの有無のパターンと、前記格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、
前記比較ステップの処理での比較結果に基づいて、前記格納制御ステップの処理により格納が制御されているコマンドのデータを、前記取得制御ステップ処理で取得が制御された前記コマンドの更新データに更新する更新ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項６】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納手段と、
前記コマンドの追加データを取得する取得手段と、
前記取得手段により取得された前記コマンドの追加データの出力リソースの有無のパターンと、前記格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較手段と、
前記比較手段の比較結果に基づいて、前記格納手段に格納されているコマンドのデータに、前記取得手段により取得された前記コマンドの追加データを追加する追加手段と
を備えることを特徴とする情報処理装置。
【請求項７】
前記コマンドの追加データの出力リソースの有無のパターンには、それぞれ符号が振られており、
前記比較手段は、前記取得手段により取得された前記コマンドの追加データの符号と、前記格納手段に格納されているコマンドのデータの符号とを比較することにより、前記取得手段により取得された前記コマンドの追加データの出力リソースの有無のパターンと、前記格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納ステップと、
前記コマンドの追加データを取得する取得ステップと、
前記取得ステップの処理で取得された前記コマンドの追加データの出力リソースの有無のパターンと、前記格納ステップの処理により格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、
前記比較ステップの処理での比較結果に基づいて、前記格納ステップの処理により格納されているコマンドのデータに、前記取得ステップの処理により取得された前記コマンドの追加データを追加する追加ステップと
を含むことを特徴とする情報処理方法。
【請求項９】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、
前記コマンドの追加データの取得を制御する取得制御ステップと、
前記取得制御ステップの処理で取得が制御された前記コマンドの追加データの出力リソースの有無のパターンと、前記格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、
前記比較ステップの処理での比較結果に基づいて、前記格納制御ステップの処理により格納が制御されているコマンドのデータに、前記取得制御ステップの処理により取得が制御された前記コマンドの追加データを追加する追加ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１０】
ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、
前記コマンドの追加データの取得を制御する取得制御ステップと、
前記取得制御ステップの処理で取得が制御された前記コマンドの追加データの出力リソースの有無のパターンと、前記格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、
前記比較ステップの処理での比較結果に基づいて、前記格納制御ステップの処理により格納が制御されているコマンドのデータに、前記取得制御ステップの処理により取得が制御された前記コマンドの追加データを追加する追加ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、ロボットを制御するコマンド、または、データを更新または追加する際、ロボットの持つ機能の有無により生じる不具合を防止できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
近年においては、例えば、玩具等として、外部の状態を認識し、その認識結果に基づいて、ある仕草をしたりするロボット（本明細書においては、ぬいぐるみ状のものを含む）が製品化されている。
【０００３】
認識結果毎に、とるべき仕草をロボットに実行させるプログラムや、そのプログラムを実行させるためのデータがあるが、例えば、このプログラムやデータを新たに追加、または更新させて、新たな認識結果に対して、新たな仕草をさせるようなこともできる。
【０００４】
ネットワークを介して、新たな制御プログラムモジュールを追加できるようにしたロボットも提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００２−３１４５９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ロボットには、実行できる機能が制限されており、例えば、認識結果として「音が聞こえた」とき、「音源の方向を撮像する」というプログラムであった場合、これを、「音が聞こえた」とき、「鳴き声を発する」というプログラムにする場合、ロボットに音声を発する機能、例えば、スピーカが備えられていれば、更新後のプログラムを実行させることができるが、音声を発する機能を備えていないロボットであった場合、プログラムが更新されることにより、「音が聞こえた」ときに対応する動作を実行することができなくなり、結果として、ロボットの動作上の不具合を発生させる恐れがあった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、特に、ロボットを制御するプログラム、または、データを更新または追加する際、ロボットの持つ機能に対応している有効なプログラム、または、データであるか否かを判定し、有効なプログラム、または、データであった場合にのみ更新または追加できるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の第１の情報処理装置は、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納手段と、コマンドの更新データを取得する取得手段と、取得手段により取得されたコマンドの更新データの出力リソースの有無のパターンと、格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較手段と、比較手段の比較結果に基づいて、格納手段に格納されているコマンドのデータを、取得手段により取得されたコマンドの更新データに更新する更新手段とを備えることを特徴とする。
【０００８】
前記コマンドの更新データの出力リソースの有無のパターンには、それぞれ符号が振られるようにさせることができ、比較手段には、取得手段により取得されたコマンドの更新データの符号と、格納手段に格納されているコマンドのデータの符号とを比較することにより、取得手段により取得されたコマンドの更新データの出力リソースの有無のパターンと、格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較させるようにすることができる。
【０００９】
本発明の第１の情報処理方法は、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納ステップと、コマンドの更新データを取得する取得ステップと、取得ステップの処理で取得されたコマンドの更新データの出力リソースの有無のパターンと、格納ステップの処理により格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、比較ステップの処理での比較結果に基づいて、格納ステップの処理により格納されているコマンドのデータを、取得ステップ処理で取得されたコマンドの更新データに更新する更新ステップとを含むことを特徴とする。
【００１０】
本発明の第１の記録媒体のプログラムは、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、コマンドの更新データの取得を制御する取得制御ステップと、取得制御ステップの処理で取得が制御されたコマンドの更新データの出力リソースの有無のパターンと、格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、比較ステップの処理での比較結果に基づいて、格納制御ステップの処理により格納が制御されているコマンドのデータを、取得制御ステップ処理で取得が制御されたコマンドの更新データに更新する更新ステップとを含むことを特徴とする。
【００１１】
本発明の第１のプログラムは、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、コマンドの更新データの取得を制御する取得制御ステップと、取得制御ステップの処理で取得が制御されたコマンドの更新データの出力リソースの有無のパターンと、格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、比較ステップの処理での比較結果に基づいて、格納制御ステップの処理により格納が制御されているコマンドのデータを、取得制御ステップ処理で取得が制御されたコマンドの更新データに更新する更新ステップとをコンピュータに実行させることを特徴とする。
【００１２】
本発明の第２の情報処理装置は、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納手段と、コマンドの追加データを取得する取得手段と、取得手段により取得されたコマンドの追加データの出力リソースの有無のパターンと、格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較手段と、比較手段の比較結果に基づいて、格納手段に格納されているコマンドのデータに、取得手段により取得されたコマンドの追加データを追加する追加手段とを備えることを特徴とする。
【００１３】
前記コマンドの追加データの出力リソースの有無のパターンには、それぞれ符号が振られるようにさせることができ、比較手段には、取得手段により取得されたコマンドの追加データの符号と、格納手段に格納されているコマンドのデータの符号とを比較することにより、取得手段により取得されたコマンドの追加データの出力リソースの有無のパターンと、格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとを比較させるようにすることができる。
【００１４】
本発明の第２の情報処理方法は、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドを格納する格納ステップと、コマンドの追加データを取得する取得ステップと、取得ステップの処理で取得されたコマンドの追加データの出力リソースの有無のパターンと、格納ステップの処理により格納されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、比較ステップの処理での比較結果に基づいて、格納ステップの処理により格納されているコマンドのデータに、取得ステップの処理により取得されたコマンドの追加データを追加する追加ステップとを含むことを特徴とする。
【００１５】
本発明の第２の記録媒体のプログラムは、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、コマンドの追加データの取得を制御する取得制御ステップと、取得制御ステップの処理で取得が制御されたコマンドの追加データの出力リソースの有無のパターンと、格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、比較ステップの処理での比較結果に基づいて、格納制御ステップの処理により格納が制御されているコマンドのデータに、取得制御ステップの処理により取得が制御されたコマンドの追加データを追加する追加ステップとを含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【００１６】
本発明の第２のプログラムは、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドの格納を制御する格納制御ステップと、コマンドの追加データの取得を制御する取得制御ステップと、取得制御ステップの処理で取得が制御されたコマンドの追加データの出力リソースの有無のパターンと、格納制御ステップの処理により格納が制御されているコマンドのデータの出力リソースの有無のパターンとを比較する比較ステップと、比較ステップの処理での比較結果に基づいて、格納制御ステップの処理により格納が制御されているコマンドのデータに、取得制御ステップの処理により取得が制御されたコマンドの追加データを追加する追加ステップとをコンピュータに実行させることを特徴とする。
【００１７】
本発明の第１の情報処理装置および方法、並びにプログラムにおいては、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドが格納され、コマンドの更新データが取得され、取得されたコマンドの更新データの出力リソースの有無のパターンと、格納手段に格納されているコマンドのデータの出力リソースの有無のパターンとが比較され、比較結果に基づいて、格納されているコマンドのデータが、取得されたコマンドの更新データに更新される。
【００１８】
本発明の第２の情報処理装置および方法、並びにプログラムにおいては、ロボットの動作を指示するものであって、複数の出力リソースを制御するデータからなるコマンドが格納され、コマンドの追加データが取得され、取得されたコマンドの追加データの出力リソースの有無のパターンと、格納されているコマンドのデータの出力リソースの有無のパターンとが比較され、比較結果に基づいて、格納されているコマンドのデータに、取得されたコマンドの追加データが追加される。
【００１９】
本発明の第１の情報処理装置、および、第２の情報処理装置は、独立した装置であっても良いし、情報処理を行うブロックであっても良い。
【発明の効果】
【００２０】
本発明によれば、ロボットを制御するプログラム、または、データを更新または追加する際、ロボットの持つ機能により生じる不具合を防止することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２２】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００２３】
即ち、本発明の第１の情報処理装置は、ロボットの動作を指示するものであって、複数の出力リソースからなるコマンドを格納する格納手段（例えば、カスタムＤＢ１７１）と、コマンドの更新データを取得する取得手段（例えば、通信部５９）と、取得手段により取得されたコマンドの更新データの出力リソースの有無のパターンと、格納手段に格納されているコマンドの出力リソースの有無のパターンとを比較する比較手段（例えば、追加変更判定部１８１）と、比較手段の比較結果に基づいて、格納手段に格納されているコマンドを、取得手段により取得されたコマンドの更新データに更新する更新手段（例えば、データ変更部１８３）とを備えることを特徴とする。
【００２４】
本発明の第１の情報処理方法は、ロボットの動作を指示するものであって、複数の出力リソースからなるコマンドを格納する格納ステップと、コマンドの更新データを取得する取得ステップ（例えば、図１７のフローチャートのステップＳ３の処理）と、取得ステップの処理で取得されたコマンドの更新データの出力リソースの有無のパターンと、格納ステップの処理で格納されているコマンドの出力リソースの有無のパターンとを比較する比較ステップ（例えば、図１７のフローチャートのステップＳ５の処理）と、比較ステップの処理での比較結果に基づいて、格納ステップの処理で格納されているコマンドを、取得ステップの処理で取得されたコマンドの更新データに更新する更新ステップ（例えば、図１７のフローチャートのステップＳ８の処理）とを含むことを特徴とする。
【００２５】
本発明の第２の情報処理装置は、ロボットの動作を指示するものであって、複数の出力リソースからなるコマンドを格納する格納手段（例えば、カスタムＤＢ１７１）と、コマンドの追加データを取得する取得手段（例えば、通信部５９）と、取得手段により取得されたコマンドの追加データの出力リソースの有無のパターンと、格納手段に格納されているコマンドの出力リソースの有無のパターンとを比較する比較手段（例えば、追加変更判定部１８１）と、比較手段の比較結果に基づいて、格納手段に格納されているコマンドに、取得手段により取得されたコマンドの追加データを追加する追加手段（例えば、データ追加部１８２）とを備えることを特徴とする。
【００２６】
本発明の第２の情報処理方法は、ロボットの動作を指示するものであって、複数の出力リソースからなるコマンドを格納する格納ステップと、コマンドの追加データを取得する取得ステップ（例えば、図１７のフローチャートのステップＳ３の処理）と、取得ステップの処理で取得されたコマンドの追加データの出力リソースの有無のパターンと、格納ステップの処理で格納されているコマンドの出力リソースの有無のパターンとを比較する比較ステップ（例えば、図１７のフローチャートのステップＳ６の処理）と、比較ステップの処理での比較結果に基づいて、格納ステップの処理で格納されているコマンドに、取得ステップの処理で取得されたコマンドの追加データを追加する追加ステップ（例えば、図１７のフローチャートのステップＳ８の処理）とを含むことを特徴とする。
【００２７】
図１は、本発明を適用したロボット制御システムの一実施の形態の構成を示す図である。
【００２８】
ロボット１は、例えば、犬等の四つ足の動物の形状のものとなっており、PC（Personal Computer）２にインストールされているカスタムツール３により、各種の動作や機能を表現するプログラムやデータが書き込まれた記録媒体４が挿入されると、記録媒体４に記録されているプログラムを実行し、外部の情報に基づいて自律的に動作する。
【００２９】
図２は、ロボット１の一実施の形態の外観構成例を示しており、図３は、その電気的構成例を示している。
【００３０】
ロボット１は、胴体部ユニット１２の前後左右に、それぞれ脚部ユニット１３Ａ，１３Ｂ，１３Ｃ，１３Ｄが連結されるとともに、胴体部ユニット１２の前端部と後端部に、それぞれ頭部ユニット１４と尻尾部ユニット１５が連結されることにより構成されている。
【００３１】
尻尾部ユニット１５は、胴体部ユニット１２の上面に設けられたベース部１５Ｂから、２自由度をもって湾曲または揺動自在に引き出されている。
【００３２】
胴体部ユニット１２には、ロボット全体の制御を行うコントローラ２０、ロボットの動力源となるバッテリ２１、並びにバッテリセンサ２２および熱センサ２３からなる内部センサ部２４などが収納されている。
【００３３】
頭部ユニット１４には、「耳」に相当するマイク（マイクロフォン）２５、「目」に相当するＣＣＤ(Charge Coupled Device)カメラ１６、「触覚」に相当するタッチセンサ２７、および「口」に相当するスピーカ２８が、それぞれ所定位置に配設されている他、ＬＥＤ（Light Emitting Diode）２９が、「目」の位置の設けられている。また、頭部ユニット１４には、口の下顎に相当する下顎部１４Ａが１自由度をもって可動に取り付けられており、この下顎部１４Ａが動くことにより、ロボットの口の開閉動作が実現されるようになっている。
【００３４】
脚部ユニット１３Ａ乃至１３Ｄそれぞれの関節部分や、脚部ユニット１３Ａ乃至１３Ｄそれぞれと胴体部ユニット１２の連結部分、頭部ユニット１４と胴体部ユニット１２の連結部分、頭部ユニット１４と下顎部１４Ａの連結部分、並びに尻尾部ユニット１５と胴体部ユニット１２の連結部分などには、図３に示すように、それぞれアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡK、１４Ａ1乃至１４ＡL、１５Ａ1、１５Ａ2が配設されている。
【００３５】
頭部ユニット１４におけるマイク２５は、ユーザからの発話を含む周囲の音声（音）を集音し、得られた音声信号を、コントローラ２０に送出する。ＣＣＤカメラ２６は、周囲の状況を撮像し、得られた画像信号を、コントローラ２０に送出する。
【００３６】
タッチセンサ２７は、例えば、頭部ユニット１４の上部に設けられており、ユーザからの「なでる」や「たたく」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を圧力検出信号としてコントローラ２０に送出する。
【００３７】
胴体部ユニット１２におけるバッテリセンサ２２は、バッテリ２１の残量を検出し、その検出結果を、バッテリ残量検出信号としてコントローラ２０に送出する。熱センサ２３は、ロボット内部の熱を検出し、その検出結果を、熱検出信号としてコントローラ２０に送出する。
【００３８】
コントローラ２０は、ＣＰＵ(Central Processing Unit)２０Ａやメモリ２０Ｂ等を内蔵しており、ＣＰＵ２０Ａにおいて、メモリ２０Ｂに記憶された制御プログラムが実行されることにより、各種の処理を行う。また、ＣＰＵ２０Ａは、ドライブ３０に接続された磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４に記憶されているプログラム、または、データを、メモリ２０Ｂにロードして実行する。
【００３９】
即ち、コントローラ２０は、マイク２５や、ＣＣＤカメラ２６、タッチセンサ２７、バッテリセンサ２２、熱センサ２３から与えられる音声信号、画像信号、圧力検出信号、バッテリ残量検出信号、熱検出信号に基づいて、周囲の状況や、ユーザからの指令、ユーザからの働きかけなどの有無を判断する。
【００４０】
さらに、コントローラ２０は、この判断結果等に基づいて、続く行動を決定し、その決定結果に基づいて、アクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡK、１４Ａ1乃至１４ＡL、１５Ａ1、１５Ａ2のうちの必要なものを駆動させる。これにより、頭部ユニット１４を上下左右に振らせたり、下顎部１４Ａを開閉させる。さらには、尻尾部ユニット１５を動かせたり、各脚部ユニット１３Ａ乃至１３Ｄを駆動して、ロボットを歩行させるなどの行動を行わせる。
【００４１】
また、コントローラ２０は、必要に応じて、合成音、あるいは後述するようなエコーバック音声を生成し、スピーカ２８に供給して出力させたり、ロボットの「目」の位置に設けられたＬＥＤ２９を点灯、消灯または点滅させる。
【００４２】
以上のようにして、ロボットは、周囲の状況等に基づいて自律的に行動をとるようになっている。
【００４３】
図４は、PC２の構成例を示している。PC２のCPU５１は、パーソナルコンピュータの全体の動作を制御する。また、CPU５１は、バス５４および入出力インタフェース５５を介してユーザからキーボードやマウスなどからなる入力部５６から指令が入力されると、それに対応してROM(Read Only Memory)５２に格納されているプログラムを実行する。あるいはまた、CPU５１は、ドライブ６０に接続された磁気ディスク７１、光ディスク７２、光磁気ディスク７３、または半導体メモリ７４から読み出され、記憶部５８にインストールされたプログラムを、RAM(Random Access Memory)５３にロードして実行する。さらに、CPU５１は、通信部５９を制御して、外部と通信し、データの授受を実行する。尚、記録媒体４は、磁気ディスク３１，７１、光ディスク３２，７２、光磁気ディスク２２，７３、または半導体メモリ３４，７４のうちのいずれかの形態をとるものである。したがって、記録媒体４は、ドライブ３０および６０に装着されるものであって、これにより、PC２のカスタムツール３により記録媒体４に記録されたプログラム、または、データをロボット１に提供することができる。
【００４４】
次に、図５の機能ブロック図を参照して、ロボット１により実現される機能について説明する。
【００４５】
コントローラ２０の機能は、センサ入力認識部１０１、内部状態制御部１０２、行動制御部１０３、および出力制御部１０４により実現される。
【００４６】
センサ入力認識部１０１は、センサ部９１より供給されたセンサの検出結果に基づいて、外部、または、内部の情報を認識して認識結果を内部状態制御部１０２、行動制御部１０３、および出力制御部１０４に供給する。
【００４７】
内部状態制御部１０２は、センサ入力認識部１０４より入力される、各種のセンサ入力認識結果に基づいて、ドライブ３０を介して記録媒体に記憶されている内部状態パラメータ３０６（図７）を用いて、ロボット１の内部の嗜好、成長状態、本能、および感情の情報を生成し、内部状態情報として行動制御部１０３に供給する。
【００４８】
行動制御部１０３は、センサ入力認識部１０１より供給される各種のセンサにより認識された外部情報、および内部状態制御部１０２より供給される内部状態の情報に基づいて、ドライブ３０を介して記録媒体４に記録されたファンクションデータ３０１とシナリオデータ３０３（図７）を用いて、シナリオを選択し、選択したシナリオにより規定されている動作を実行させるコマンド発行し、出力制御部１０４に供給する。尚、シナリオについては、詳細を後述する。
【００４９】
出力制御部１０４は、行動制御部１０３より供給されたコマンドに基づいて、ドライブ３０を介して記録媒体４に記録された出力コマンドデータ３０２（図７）を用いて、出力部９１を制御することにより各種の動作を実際にロボットに実行させる。
【００５０】
センサ部９１は、マイク２５、ＣＣＤカメラ２６、タッチセンサ２７、バッテリセンサ２２、および、熱センサ２３を総称するものである。
【００５１】
出力部９２は、スピーカ２８、LED２９、および、アクチュエータ９３を総称するものである。また、アクチュエータ９３は、アクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡK、１４Ａ1乃至１４ＡL、１５Ａ1、１５Ａ2を総称するものである。
【００５２】
センサ入力認識部１０１の音声認識部１１１は、センサ部９１のマイク２５により検出された音声信号に基づいて、ドライブ３０を介して記録媒体に記憶されている音声認識データ３０５（図７）を用いて、周囲の音声、または、人間が発する言葉などを認識し、認識結果を内部状態制御部１０２、行動制御部１０３、および、出力制御部１０４に供給する。
【００５３】
画像認識部１１２は、センサ部９１のＣＣＤカメラ２６により撮像された画像信号に基づいて、ドライブ３０を介して記録媒体に記憶されている画像パターン認識データ３０４（図７）を用いて、周囲に存在する物体や人物などを認識し、認識結果を内部状態制御部１０２、行動制御部１０３、および、出力制御部１０４に供給する。
【００５４】
接触認識部１１３は、センサ部９１のタッチセンサ２７により検出された圧力検出信号に基づいて、触られた、撫でられた、または、叩かれたなどの情報を認識し、認識結果を内部状態制御部１０２、行動制御部１０３、および、出力制御部１０４に供給する。
【００５５】
バッテリ状態認識部１１４は、センサ部９１のバッテリセンサ２２により検出されたバッテリ検出信号に基づいて、バッテリ２１の充電状態の情報を認識し、認識結果を内部状態制御部１０２、行動制御部１０３、および、出力制御部１０４に供給する。
【００５６】
温度認識部１１５は、センサ部９１の熱センサ２３により検出された熱検出信号に基づいて、本体内部の温度情報を認識し、認識結果を内部状態制御部１０２、行動制御部１０３、および、出力制御部１０４に供給する。
【００５７】
行動制御部１０３のシナリオ選択部１２１は、センサ入力部１０１より供給される認識情報、および、内部状態制御部１０２より供給される内部状態情報に基づいて、記録媒体４に記録されている複数のシナリオデータから所定のシナリオデータを選択する。
【００５８】
シナリオ解釈部１２２は、シナリオ選択部１２１により選択されたシナリオを解釈し、解釈した内容に関する情報をコマンド発行部１２４に供給する。
【００５９】
条件判定部１２３は、センサ入力認識部１０１より入力されるセンサ入力認識情報と、内部状態制御部１０２より入力される内部状態情報に基づいて、シナリオに則った動作をする際の各種の条件を判断し、コマンド発行部１２４に供給する。
【００６０】
コマンド発行部１２４は、シナリオ解釈部１２２より供給されたシナリオから解釈される情報と、条件判断部１２３より供給された各種の条件における判断結果に基づいて、ロボット１の各種の動作に必要なコマンドを発行して出力制御部１０４に供給する。
【００６１】
出力制御部１０４のコマンド解釈部１３１は、行動制御部１０３より供給されたコマンドを解釈し、解釈したコマンドの情報をコマンド管理部１３２に供給する。コマンド管理部１３２は、解釈されたコマンドに対応する情報をドライブ３０に接続された記録媒体４に記録されている出力コマンドデータ３０２を参照して読みだし、姿勢管理部１３３より供給される姿勢情報とリソース管理部１３４より供給されるリソース情報に基づいて、音声出力部１３５、ＬＥＤ出力部１３６、および、動作出力部１３７に対して具体的なコマンドを生成して各種の動作を実行させる。
【００６２】
姿勢管理部１３３は、これまでの動作によりロボット１の現在の姿勢を認識し、その情報をコマンド管理部１３２に供給する。リソース管理部１３４は、出力リソースとなる音声出力部１３５、ＬＥＤ出力部１３６、および、動作出力部１３７の動作状況を管理し、コマンド管理部１３２に供給する。
【００６３】
音声出力部１３５は、コマンド管理部１３２より供給されたスピーカ２８より音声を出力させるコマンドに基づいて、出力部９２のスピーカ２８を制御して、コマンドに対応する音声を出力させる。
【００６４】
ＬＥＤ出力部１３６は、コマンド管理部１３２より供給されたＬＥＤ２９を点灯させるコマンドに基づいて、出力部９２のＬＥＤ２９を制御して、コマンドに対応するようにＬＥＤ２９を点灯させる。
【００６５】
動作出力部１３７は、コマンド管理部１３２より供給されたアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡK、１４Ａ1乃至１４ＡL、１５Ａ1、１５Ａ2を動作させるコマンドに基づいて、アクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡK、１４Ａ1乃至１４ＡL、１５Ａ1、１５Ａ2をコマンドに対応するように動作させる。
【００６６】
次に、図６を参照して、PC２で実現される機能について説明する。
【００６７】
カスタムツール３の追加変更判定部１８１は、通信部５９を介して、または、ドライブ６０に装着された記録媒体（例えば、CD-ROMなど）を介してカスタムDB１７１に蓄積されたカスタムデータに基づいて、ドライブ６０に接続されたプログラム、または、データにカスタムデータのプログラム、または、データを追加、または、更新させるか否かを判定し、判定結果をデータ追加部１８２、または、データ更新部１８３に供給する。
【００６８】
データ追加部１８２は、追加変更判定部１８１の判定結果に基づいて、追加するプログラム、または、データを記録媒体４に追加させる。
【００６９】
データ更新部１８３は、追加変更判定部１８１の判定結果に基づいて、記録媒体４に記録されている追加するプログラム、または、データを、取得した更新用のカスタムデータのプログラム、または、データに更新させる。
【００７０】
データ追加部１８２のファンクションデータ追加部１９１は、記録媒体４に後述するファンクションデータ３０１のファンクション管理テーブル３１１に新たなファンクションを追加する。出力コマンドデータ追加部１９２は、記録媒体４に後述する出力コマンドデータ３０２のうち追加出力コマンドデータ３２３（図７）を追加する。シナリオ追加部１９３は、記録媒体４に後述するシナリオデータ３０３のうち追加シナリオデータ３３３（図７）を追加する。認識パターン追加部１９４は、記録媒体４に後述する画像パターン認識データ３０４のうち追加画像パターン認識データ３４３（図７）を追加する。認識単語追加部１９５は、記録媒体４に後述する音声認識データ３０５のうち追加音声認識単語データ３５３（図７）を追加する。
【００７１】
データ更新部１８３の出力コマンドデータ更新部２０１は、記録媒体４に後述する出力コマンドデータ３０２のうち既存出力コマンドデータ３２２（図７）を更新する。認識パターン更新部２０２は、記録媒体４に後述する画像パターン認識データ３０４のうち既存画像パターン認識データ３４２（図７）を追加する。認識単語更新部２０３は、記録媒体４に後述する音声認識データ３０５のうち既存音声認識単語データ３５２（図７）を追加する。内部状態パラメータ更新部２０３は、記録媒体４に後述する内部状態パラメータ管理テーブル３０６に新たな内部状態パラメータを追加する。
【００７２】
インタフェース部１８４は、GUI（Graphical User Interface）などにより入力画面を生成して表示させるとともに、入力部５６を操作して入力された情報に基づいて、各種の処理を実行させる。
【００７３】
次に、図７を参照して、記録媒体４に格納されているカスタムデータのプログラム、または、データの構成について説明する。尚、このカスタムデータのプログラム、または、データの構成については、カスタムDB１７１などに記録される構成と同様のものである。
【００７４】
ファンクションデータ３０１は、ロボット１で動作可能な機能を示すデータであり、ファンクション管理テーブル３１１は、それらの機能が記録されたテーブルである。図８は、ファンクション管理テーブル３１１の構成例を示したものである。図８の最上段に示されるように、ファンクション管理テーブル３１１は、ファンクションバージョン４０１が記録されており、今の場合「１．１．０」示されており、ファンクションのバージョン番号が「１．１．０」であることが示されている。
【００７５】
ファンクションバージョン４０１の図中の下には、ファンクション名４０２が記録されており、ロボット１で動作可能な機能が示されている。今の場合、上から、「ボール認識」、「手認識」、「画像パターン認識」、「音声認識」、「内部状態制御」、「４足脚アクチュエータ出力制御」、ＬＥＤ出力制御」、および、「音出力制御」と記録されており、それぞれボールを認識すること、ユーザの差し出した手を認識すること、画像をパターンとして認識すること、音声を認識すること、内部状態を制御すること、４足脚アクチュエータの出力をそれぞれ制御すること、ＬＥＤの点灯を制御すること、そして、音声を出力することが、それぞれ可能であることが記録されている。
【００７６】
出力コマンドデータ３０２は、出力コマンドを実行するにあたり必要なデータであり、出力コマンドデータ管理テーブル３２１、既存出力コマンドデータ３２２、および、追加出力コマンドデータ３２３より構成される。出力コマンドデータ管理テーブル３２１は、出力コマンドと、既存出力コマンドデータ３２２または追加出力コマンドデータ３２３との関係を示すテーブルであり、例えば、図９で示されるようなものである。すなわち、図９においては、最上段にファンクションバージョン４２１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン４２２が示されており、今の場合、「１．１．０」と示されており、出力コマンドデータ管理テーブル３２１のテーブルバージョンが１．１．０であることが示されている。
【００７７】
さらに、その下には、出力コマンドと、その実行に必要なデータ名の対応関係が示されたテーブル４２３が示されている。テーブル４２３は、左からコマンド名、姿勢、Ｌｅｇ出力データ名、Ｌｅｄ出力データ名、および、Ｓｏｕｎｄ出力データ名が示されている。コマンド名は、出力コマンドの名称であり、姿勢は、その出力コマンドを実行する際のロボット１の姿勢を示すものであり、Ｌｅｇ出力データ名は、その出力コマンドを実行する際のロボット１の脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御する際に使用するデータ名を示すものである。Ｌｅｄ出力データ名は、その出力コマンドを実行する際のロボット１のＬＥＤ２９の点灯を制御する際に使用するデータ名を示すものであり、Ｓｏｕｎｄ出力データ名は、その出力コマンドを実行する際のロボット１のスピーカ２８より発する音声を制御する際に使用するデータ名を示すものである。
【００７８】
今の場合、コマンド名の欄には、上から「ダンス１」、「ダンス２」、「お手１」、「姿勢変更」、「喜び１」、「喜び２」、および、「ＢＧＭ１」が示されている。
【００７９】
すなわち、図９においては、「ダンス１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Dance1Motion」が、Ｌｅｄ出力データ名として「Dance1Led」が、Ｓｏｕｎｄ出力データ名として「−」が、それぞれ示されており、「ダンス１」のコマンドを実行する際、姿勢をSit状態（座らせた状態）にし、脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御するにあたり「Dance1Motion」のファイルを実行し、ＬＥＤ２９の点灯を制御するにあたり「Dance1Led」のファイルを実行することが示されている。尚、スピーカ２８より音声を発するデータとしては「−」と示されており、音声を出力しないことが示されている。
【００８０】
また、「ダンス２」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Dance2Motion」が、Ｌｅｄ出力データ名として「Dance2Led」が、Ｓｏｕｎｄ出力データ名として「Dance2Sound」が、それぞれ示されており、「ダンス２」のコマンドを実行する際、姿勢をSit状態（座らせた状態）にし、脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御するにあたり「Dance2Motion」のファイルを実行し、ＬＥＤ２９の点灯を制御するにあたり「Dance2Led」のファイルを実行し、スピーカ２８より発生する音声を制御するにあたり「Dance2Sound」のファイルを実行することが示されている。
【００８１】
さらに、「お手１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Ote1Motion」が、Ｌｅｄ出力データ名として「−」が、Ｓｏｕｎｄ出力データ名として「Ote1Sound」が、それぞれ示されており、「お手１」のコマンドを実行する際、姿勢をSit状態（座らせた状態）にし、脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御するにあたり「Ote1Motion」のファイルを実行し、ＬＥＤ２９の点灯をさせず、スピーカ２８より発生する音声を制御するにあたり「Ote1Sound」のファイルを実行することが示されている。
【００８２】
また、「お手１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Ote1Motion」が、Ｌｅｄ出力データ名として「−」が、Ｓｏｕｎｄ出力データ名として「Ote1Sound」が、それぞれ示されており、「お手１」のコマンドを実行する際、姿勢をSit状態（座らせた状態）にし、脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御するにあたり「Ote1Motion」のファイルを実行し、ＬＥＤ２９の点灯をさせず、スピーカ２８より発生する音声を制御するにあたり「Ote1Sound」のファイルを実行することが示されている。
【００８３】
さらに、「姿勢変更」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「ChangePosSit1Motion」が、Ｌｅｄ出力データ名として「−」が、Ｓｏｕｎｄ出力データ名として「−」が、それぞれ示されており、「姿勢変更」のコマンドを実行する際、姿勢をSit状態（座らせた状態）にし、脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御するにあたり「ChangePosSit1Motion」のファイルを実行し、ＬＥＤ２９の点灯、および、スピーカ２８からの音声はいずれも出力しないことが示されている。
【００８４】
また、「喜び１」のコマンドにおいては、姿勢として「Any」が、Ｌｅｇ出力データ名として「−」が、Ｌｅｄ出力データ名として「Joy1Led」が、Ｓｏｕｎｄ出力データ名として「−」が、それぞれ示されており、「喜び１」のコマンドを実行する際、姿勢はどのような姿勢でもよく、脚部ユニット１３Ａ乃至１３Ｄを動作させず、ＬＥＤ２９の点灯を制御するにあたり「Joy1Led」のファイルを実行し、スピーカ２８より音声を発生させないことが示されている。
【００８５】
また、「喜び２」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Joy2Motion」が、Ｌｅｄ出力データ名として「Joy2Led」が、Ｓｏｕｎｄ出力データ名として「Joy2Sound」が、それぞれ示されており、「喜び２」のコマンドを実行する際、姿勢をSit状態（座らせた状態）にし、脚部ユニット１３Ａ乃至１３Ｄのアクチュエータ１３ＡＡ1乃至１３ＡＡK、１３ＢＡ1乃至１３ＢＡK、１３ＣＡ1乃至１３ＣＡK、１３ＤＡ1乃至１３ＤＡKを制御するにあたり「Joy2Motion」のファイルを実行し、ＬＥＤ２９の点灯を制御するにあたり「Joy2Led」のファイルを実行し、スピーカ２８より発生する音声を制御するにあたり「Joy2Sound」のファイルを実行することが示されている。
【００８６】
さらに、「BGM1」のコマンドにおいては、姿勢として「Any」が、Ｌｅｇ出力データ名として「−」が、Ｌｅｄ出力データ名として「−」が、Ｓｏｕｎｄ出力データ名として「Bgm1Sound」が、それぞれ示されており、「BGM1」のコマンドを実行する際、姿勢はいずれであってもよく、脚部ユニット１３Ａ乃至１３Ｄの動作をさせず、ＬＥＤ２９の点灯をさせず、スピーカ２８より発生する音声を制御するにあたり「Bgm1Sound」のファイルを実行することが示されている。
【００８７】
既存出力コマンドデータ３２２は、出荷時に予め記録された出力コマンドデータを示し、追加出力コマンドデータ３２３は、出荷後、ロボット１のユーザにより、カスタムデータに基づいて追加された出力コマンドデータであり、いずれも、Lｅｇ出力データ、Lｅｄ出力データ、およびＳｏｕｎｄ出力データそのものである。
【００８８】
ここで、図７の説明に戻る。
【００８９】
シナリオデータ３０３は、ロボット１の一連の動作における状態の遷移を示すと共に、各状態において実行される姿勢、および、出力データを規定したものであり、シナリオ管理テーブル３３１、既存シナリオデータ３３２、および、追加シナリオデータ３３３より構成される。
【００９０】
シナリオ管理テーブル３３１は、各シナリオデータを識別するシナリオID（Identifier）と実際のシナリオデータ名との関係を示すテーブルであり、例えば、図１０で示されるようなものである。すなわち、図１０においては、最上段にファンクションバージョン４４１が示されており、シナリオデータを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン４４２が示されており、今の場合、「１．１．０」と示されており、シナリオ管理テーブル３３１のテーブルバージョンが１．１．０であることが示されている。
【００９１】
さらに、その下には、シナリオIDと、その実行に必要なシナリオデータ名の対応関係が示されたテーブル４４３が示されている。テーブル４４３は、左からシナリオID、シナリオデータ名、および、使用状況が示されている。
【００９２】
シナリオIDは、シナリオデータを識別するためのIDであり、シナリオデータ名は、実際に使用されるシナリオが記述されたデータである。使用状況は、シナリオIDとして登録されているシナリオデータのうち、実際に使用されるものであるか否かを示す情報である。
【００９３】
図１０の場合、シナリオIDは、「ダンスシナリオ１」、「ダンスシナリオ２」、「お手シナリオ１」、「お手シナリオ２」、「追加シナリオ１」、「追加シナリオ２」、および、「追加シナリオ３」が示されている。
【００９４】
さらに、「ダンスシナリオ１」を実行させるシナリオデータ名は「Dance1」であることが示されており、「ダンスシナリオ２」を実行させるシナリオデータ名は「Dance2」であることが示されており、「お手シナリオ１」を実行させるシナリオデータ名は「Ote1」であることが示されており、「お手シナリオ２」を実行させるシナリオデータ名は「Ote2」であることが示されており、「追加シナリオ１」を実行させるシナリオデータ名は「Add1」であることが示されており、「追加シナリオ２」を実行させるシナリオデータ名は「Add2」であることが示されており、「追加シナリオ３」を実行させるシナリオデータ名は「Add3」であることが示されている。また、追加シナリオ２，３は、使用状況が「No」となっており、それ以外は、使用状況が「Yes」にされている。
【００９５】
既存データシナリオ３３２は、上述のシナリオデータ名で示される実際のデータ（ファイル）のうち工場出荷時に登録されたシナリオデータであり、追加データシナリオ３３３は、上述のシナリオデータ名で示される実際のデータ（ファイル）であって、購入されたユーザによりカスタムデータで新たに追加されたシナリオデータである。図１０の場合、「ダンスシナリオ１」、「ダンスシナリオ２」、「お手シナリオ１」、および、「お手シナリオ２」が既存シナリオデータ３３２を示すシナリオデータ名であり、「追加シナリオ１」、「追加シナリオ２」、および、「追加シナリオ３」が追加シナリオデータ３３３を示すシナリオデータ名である。このため、図１０において、「追加シナリオ１」は、使用されているので使用状況が「Yes」となっており、追加されていない追加シナリオデータ３３３である追加シナリオ２，３については、使用状況が「No」となっている。
【００９６】
ここで、図７の説明に戻る。
【００９７】
画像パターン認識データ３０４は、画像認識部１１２が、ＣＣＤカメラ２６で撮像された画像に基づいて画像を認識する際に使用されるものであり、認識できるパターンを示すデータである。画像パターン認識データ３０４は、画像パターン認識データ管理テーブル３４１、既存画像パターン認識データ３４２、および、追加画像パターン認識データ３４３より構成される。画像パターン認識データ管理テーブル３４１は、認識可能な画像を示す認識データ名と、その認識可能な画像の内容との関係を示すテーブルであり、例えば、図１１で示されるようなものである。すなわち、図１１においては、最上段にファンクションバージョン５０１が示されており、画像認識処理を実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン５０２が示されており、今の場合、「１．１．０」と示されており、画像パターン認識データ管理テーブル５０１のテーブルバージョンが１．１．０であることが示されている。
【００９８】
さらに、その下には、認識可能な画像を示す認識データ名と、その認識可能な画像の内容との対応関係が示されたテーブル５０３が示されている。テーブル５０３は、左から認識データ名、および、内容が示されている。認識データ名は、画像として認識できる画像を識別するものであり、図１１の場合、上から「カード１」、「カード２」、「マーカ１」、および、「マーカ２」と示されている。内容は、実際に識別される画像であり、図１１の場合、上から「スペードマーク」、「ダイヤマーク」、「ストライプ」、および、「二重円」と示されている。すなわち、図１１の場合、認識データ名「カード１」に対応する認識できる画像の内容が「スペードマーク」であり、認識データ名「カード２」に対応する認識できる画像の内容が「ダイヤマーク」であり、認識データ名「マーカ１」に対応する認識できる画像の内容が「ストライプ」であり、認識データ名「マーカ２」に対応する認識できる画像の内容が「二重円」であることが示されている。
【００９９】
既存画像パターン認識データ３４２は、出荷時に予め記録された画像パターン認識データを示し、追加画像パターン認識データ３４３は、出荷後、ロボット１のユーザにより、カスタムデータに基づいて追加された画像パターン認識データであり、いずれも、画像パターン認識データそのものである。
【０１００】
音声認識単語データ３０５は、音声認識部１１１が、マイク２５で検出された音声に基づいて音声を認識する際に使用されるものであり、認識できる単語を示すデータである。音声認識単語データ３０５は、音声認識単語データ管理テーブル３５１、既存音声認識単語データ３５２、および、追加音声認識単語データ３５３より構成される。音声認識単語データ管理テーブル３５１は、認識可能な単語を示す認識データ名と、その認識可能な単語の内容との関係を示すテーブルであり、例えば、図１２で示されるようなものである。すなわち、図１２においては、最上段にファンクションバージョン５２１が示されており、音声認識処理を実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン５２２が示されており、今の場合、「１．１．０」と示されており、音声認識単語データ管理テーブル５２１のテーブルバージョンが１．１．０であることが示されている。
【０１０１】
さらに、その下には、認識可能な単語を示す認識データ名と、その認識可能な単語の内容との対応関係が示されたテーブル５２３が示されている。テーブル５２３は、左から認識データ名、および、内容が示されている。認識データ名は、単語として認識できる単語を識別するものであり、図１２の場合、上から「GoodMorning」、「Hello」、「Dance」、および、「SitDown」と示されている。内容は、実際に識別される単語であり、図１２の場合、上から「おはよう」、「こんにちわ」、「だんす」、および、「おすわり」と示されている。すなわち、図１２の場合、認識データ名「GoodMorning」に対応する認識できる単語の内容が「おはよう」であり、認識データ名「Hello」に対応する認識できる単語の内容が「こんにちわ」であり、認識データ名「Dance」に対応する認識できる単語の内容が「だんす」であり、認識データ名「SitDown」に対応する認識できる単語の内容が「おすわり」であることが示されている。
【０１０２】
既存音声認識単語データ３５２は、出荷時に予め記録された音声認識単語データを示し、追加音声認識単語データ３５３は、出荷後、ロボット１のユーザにより、カスタムデータに基づいて追加された音声認識単語データであり、いずれも、音声認識単語データそのものである。
【０１０３】
内部状態パラメータ３０６は、内部状態制御部１０２が内部状態を制御する際に使用するデータであって、ロボット１の成長度、性格、感情、本能、および、覚醒度からなる内部状態を示すパラメータであり、内部状態パラメータ管理テーブル３６１より構成される。内部状態パラメータ管理テーブル３６１は、内部状態の項目名と、その内容との関係を示すテーブルであり、例えば、図１３で示されるようなものである。すなわち、図１３においては、最上段にファンクションバージョン５４１が示されており、内部状態を管理するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン５４２が示されており、今の場合、「１．１．０」と示されており、内部状態パラメータ管理テーブル３６１のテーブルバージョンが１．１．０であることが示されている。
【０１０４】
さらに、その下には、内部状態の項目名と、その認識可能な単語の内容との対応関係が示されたテーブル５４３が示されている。テーブル５４３は、内部状態、および、内容が示されている。内部状態は、図１３の場合、上から「成長度」、「性格」、「感情（喜び，怒り，悲しみ）」、「本能（運動欲，愛情欲，食欲）」、および、「覚醒度」と示されている。内容は、各内部状態の内容を示すものであり、図１３の場合、上から「青年」、「おとなしい」、「喜び：高，怒り：低，悲しみ：低」、「運動欲：低，愛情欲：低，食欲：中」、および、「高」と示されている。すなわち、図１３の場合、内部状態「成長度」は「青年」であり、内部状態「性格」は「おとなしい」であり、内部状態「感情」は「喜び：高，怒り：低，悲しみ：低」であり、内部状態「本能」は「運動欲：低，愛情欲：低，食欲：中」であり、内部状態「覚醒度」は「運動欲：低，愛情欲：低，食欲：中」であることが示されている。
【０１０５】
次に、図１４を参照して、ロボット１を動作させる手順について説明する。
【０１０６】
ロボット１は、基本的に図７で示したように記録媒体４に記録されたカスタムデータに基づいて動作を行う。このカスタムデータは、工場出荷時に記録されている既存のカスタムデータとは別に、CD-ROMやインターネットなどのWebページからダウンロードして既存のカスタムデータを更新する更新用カスタムデータ、および、追加用カスタムデータが存在する。
【０１０７】
図１４で示されるように、PC２のカスタムツール３は、ユーザにより操作されて、更新用カスタムデータ、または、追加用のカスタムデータからなるカスタムデータ５５１をCD-ROMやWebページよりダウンロードし、カスタムDB１７１に記憶する。さらに、カスタムツール３は、ユーザにより操作されて、記録媒体４に記録された既存のカスタムデータと、カスタムDB１７１に記憶されたカスタムデータ５５１を読み出し、必要に応じて記録媒体４のカスタムデータを更新したり、または、カスタムデータを追加する。
【０１０８】
ロボット１は、記録媒体４に記録されているカスタムデータを読み出して動作を実行する。
【０１０９】
より詳細には、ロボット１は、カスタムデータのうちシナリオデータ３０３の既存シナリオデータ３３２、または、追加シナリオデータ３３３に基づいて動作を実行する。
【０１１０】
既存シナリオデータ３３２、または、追加シナリオデータ３３３は、所定のプログラム言語で記述され、例えば、図１５で示されるように、状態の遷移と、各状態毎に実行される出力コマンド、および、状態が遷移するときの条件が記述されている。
【０１１１】
図１５においては、シナリオIDとして「ダンスシナリオ１」と記されており、このシナリオが「ダンスシナリオ１」の既存シナリオデータ３３２であることが示されている。
【０１１２】
図１５のシナリオデータにおいては、状態１において、「はじめ」の状態となっており、姿勢が「Sit」で示されるように座っている状態で、かつ、出力データが無いことが示されている。この状態からは無条件に、出力コマンド「Bgm1」が指令され、状態は、状態１から状態２へと変化する。
【０１１３】
状態２において、状態は、「待ち状態」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「Bgm1」に対応する「Bgm1Sound」（図９参照）が出力データとして実行される。さらに、この状態２において、マイク２５により検出された音声に基づいて、音声認識部１１１により「ダンス」が認識された場合、「喜び１」の出力コマンドと共に重ね実行指定がなされ、状態は、状態２から状態３に遷移する。ここで、重ね実行とは、それまでの出力コマンドにより実行されていた処理を重ねて実行することを指定するものであって、今の場合、重ね実行指定により「喜び１」の出力コマンドにより指定された「Joy1Led」（図９参照）の処理と共に、出力コマンド「Bgm1」により指令されている「Bgm1Sound」を実行する処理も継続して実行することが示されている。
【０１１４】
状態３において、状態は、「よころび動作中」となり、さらに、重ね実行が指定されているので、「Joy1Led」と「Bgm1Sound」が同時に実行される。出力コマンド「喜び１」により指定された「Joy1Led」の処理が終了すると、出力コマンド「ダンス１」が指令され、さらに、重ね実行指定がなされ、状態は、状態３から状態４に進む。
【０１１５】
状態４において、状態は、「ダンス動作中」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「ダンス１」に対応する「Dance1Motion」、および、「Dance1Led」（図９参照）と共に、重ね実行指定されている「Bgm1Sound」が出力データとして実行される。さらに、この状態４において、出力コマンド「ダンス１」に対応する動作が終了した場合、その状態は、状態４から状態２に遷移し、それ以降の処理が繰り返される。
【０１１６】
すなわち、図１５で示されるダンスシナリオ１が実行されると、ロボット１は、はじめにスピーカ２８から「Bgm1Sound」に対応する音声（BGM）を流し、この状態で「ダンス」と音声認識される音声が検出されると、喜びの動作をする。このとき、重ね実行指定によりBGMはそのまま発生され、その喜びの動作が完了するとダンスを踊りだすと言う動作を繰り返す。
【０１１７】
また、同様に図１６で示されるような「お手シナリオ１」の場合、シナリオIDとして「お手シナリオ１」と記されており、このシナリオが「お手シナリオ１」の既存シナリオデータであることが示されている。
【０１１８】
図１６のシナリオデータにおいては、状態１において、「はじめ」の状態となっており、姿勢が「Sit」で示されるように座っている状態で、かつ、出力データが無いことが示されている。この状態からは無条件に、状態は、状態１から状態２へと変化する。
【０１１９】
状態２において、状態は、「待ち状態」となり、姿勢が「Sit」で示されるように座っている状態となる。さらに、この状態２において、CCDカメラ２６により撮像された画像に基づいて、画像認識部１１２により「手」が認識された場合、「喜び２」の出力コマンドと、「Sit姿勢指定」が指令され、状態は、状態２から状態３に遷移する。
【０１２０】
状態３において、状態は、「よころび動作中」となり、「喜び２」の出力コマンドで指定される「Joy2Motion」、「Joy2Led」、および「Joy2Sound」（図９参照）が実行される。さらに、出力コマンド「喜び２」により指定された「Joy2Motion」、「Joy2Led」、および「Joy2Sound」の処理が完了すると、出力コマンド「お手１」とが指令され、「Sit姿勢指定」が指令され、状態は、状態３から状態４に遷移する。
【０１２１】
状態４において、状態は、「お手動作中」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「お手１」に対応する「Ote1Motion」、および、「Ote1Sound」が出力データとして実行される。さらに、この状態４において、出力コマンド「お手１」に対応する動作が完了した場合、その状態は、状態４から状態２に遷移し、それ以降の処理が繰り返される。
【０１２２】
すなわち、図１６で示されるお手シナリオ１が実行されると、ロボット１は、画像認識部１１２により「手」が認識されると、「喜び２」の動作をし、その動作が終了すると「お手１」で規定される動作を実行する。
【０１２３】
このように、ロボットは、シナリオデータで規定された動作を実行することにより、外部からの情報（例えば、音声に基づいて所定の単語が検出されることにより得られる情報、または、所定の画像パターンが認識されたことにより得られる情報）に基づいて、動作を行う。すなわち、上述した「ダンスシナリオ１」が実行されるとき、「ダンス」と認識される音声が検出された場合、「喜び１」の動作をした後、「ダンス１」の動作を行い、「お手シナリオ１」が実行されるとき、「手」と認識される画像が検出された場合、「喜び２」の動作をした後、「お手１」の動作を行う。このような動作により、ロボット１は、ユーザからすれば、あたかも自立的に動作しているように見える。
【０１２４】
次に、図１７のフローチャートを参照して、カスタムデータの更新追加処理について説明する。尚、このとき、記録媒体４は、ドライブ６０に接続されているものとする。
【０１２５】
ステップＳ１において、カスタムツール３のインタフェース部１８４は、入力部５６に問い合わせて、カスタムツール３の起動が指示されたか否かを判定し、起動が指示されたと判定されるまでその処理を繰り返す。そして、ユーザが入力部５６を操作して、カスタムツールの起動が指示されたと判定された場合、ステップＳ２において、インタフェース部１８４は、例えば、図１８で示されるような操作画面を表示する。
【０１２６】
ここで、図１８を参照して、操作画面について説明する。操作画面の最上段には、バージョン表示欄６０１が表示され、記録媒体４に記録されているファンクションバージョンが表示され、今の場合、ファンクションバージョンとして「１．１．０Ｊ」が表示されており、記録媒体４に記録されているファンクションバージョンが「１．１．０Ｊ」であることが示されている。
【０１２７】
ファンクションバージョン表示欄６０１の下には、ロボット情報表示欄６０２が設けられており、記録媒体４に記録されているファンクションデータが表示されている。今の場合、起動音として「ラジオ体操」が、ダンスとして「かわいいダンス」が、ゲーム１として「かるた」が、ゲーム２，３が「空き」として表示されている。
【０１２８】
「起動音：ラジオ体操」とは、起動時に操作される、音声出力に関する出力コマンドデータのセットを示すものである。同様にして、「ダンス：かわいいダンス」とは、ダンスに関わる出力コマンドデータのセットを示している。また、「ゲーム１：かるた」は、かるたゲームを実行するためのシナリオデータを示している。さらに、ゲーム２，３の「空き」は、ゲーム２，３に対応する領域にゲームのシナリオデータを記憶する容量が残されていることが示されている。また、ここに表示される情報としては、出力コマンドデータのセット、または、シナリオデータの例を示しているが、それに限るものではなく、ファンクションデータ３０１、出力コマンドデータ３０２、シナリオデータ３０３、画像パターン認識データ３０４、音声認識データ３０５、および、内部状態パラメータ３０６のいずれであってもよいし、いずれを用いたセットとなる情報であってもよい。
【０１２９】
同様に、ロボット情報表示欄６０２の右側には、ＰＣ情報表示欄６０３が表示されており、カスタムDB１７１に予めCD-ROMやWebページよりダウンロードされているカスタムデータの一覧が表示されている。今の場合、起動音として「ボロコップ風」が、ダンスとして「激しいダンス」が、ゲームとして「日めくり7月号」、および、「山手線ゲーム」が、そして、カスタムとして「おしゃべり（男）」が示されている。いずれの情報も、ロボット情報表示欄６０２で示される情報と同様のものである。
【０１３０】
これらのロボット情報表示欄６０２、または、PC情報表示欄６０３の各項目は、ポインタなどにより選択することができ、この状態で、追加ボタン６０４、または、削除ボタン６０５が押下されると、選択された項目をPC情報表示欄６０３からロボット情報表示欄６０２に、または、ロボット情報表示欄６０２からPC情報表示欄６０３に移動させることができる。すなわち、今の場合、「起動音：ボロコップ」がポインタにより選択されて、表示部分の色の表示が変化しており、この状態で、例えば、追加ボタン６０４を押下するとロボット情報表示欄６０２に追加させることができ、それらのシナリオや出力コマンドデータもカスタムDB１７１から記録媒体４に移動する。
【０１３１】
また、各項目のうち、ロボット情報表示欄６０２に表示された項目と、同じ名称の項目がPC情報表示欄６０３において選択された状態で、追加ボタン６０４が押下される場合、ロボット情報表示欄６０２に表示されている項目は、PC情報表示欄６０３で選択された項目に更新され、記録媒体４のカスタムデータが、カスタムDB１７１に記録されているカスタムデータに更新される。このような処理により、同じ項目のカスタムデータであっても、出荷時の状態から更新させていくことができる。
【０１３２】
逆に、ロボット情報表示欄６０２の「起動音：ラジオ体操」が選択された状態で、削除ボタン６０５が押下されると「起動音：ラジオ体操」がPC情報表示欄６０３に移動し、記録媒体４に記録されている対応するカスタムデータは、カスタムDB１７１に移動する。
【０１３３】
このような操作により、記録媒体４に記録されているカスタムデータを移動、または、削除させることにより、ユーザの好みの動作をロボット１にさせるようにすることができる。
【０１３４】
ここで、図１７のフローチャートの説明に戻る。
【０１３５】
ステップＳ３において、インタフェース部１８４は、追加ボタン６０４が操作されたか否かを判定し、追加ボタン６０４が操作されるまでその処理を繰り返し、追加ボタン６０４が操作されたと判定された場合、その処理は、ステップＳ４に進む。
【０１３６】
ステップＳ４において、追加変更判定部１８１は、追加ボタン６０４が押下された際の操作が、更新操作を目的とした操作であるか否かを判定する。ステップＳ４において、ロボット情報表示欄６０２に表示された項目がシナリオデータ以外のカスタムデータである場合、追加ボタン６０４が押下されたとき、追加変更判定部１８１は、更新操作であると判定し、その処理は、ステップＳ５に進み、更新確認処理を実行する。尚、更新確認処理については、詳細を後述する。
【０１３７】
ステップＳ４において、更新操作ではないと判定された場合、すなわち、シナリオデータの追加操作であると判定された場合、その処理は、ステップＳ６に進み、追加確認処理が実行される。
【０１３８】
ステップＳ７において、インタフェース部１８４は、更新確認処理、または、追加確認処理において、確認がＯＫであったか否かを判定し、ＯＫであると判定した場合、ステップＳ８において、操作されたカスタムデータを表示画面上で移動させると共に、カスタムDB１７１に記憶されているカスタムデータを、記録媒体４に移動させ、更新、または、追加させ、その処理は、ステップＳ１に戻る。尚、シナリオデータは、追加されると、テーブル４４３の使用状況が「No」から「Yes」に変更される。
【０１３９】
ステップＳ７において、確認がＯＫではない、すなわち、ＮＧであった場合、インタフェース部１８４は、更新、または、追加操作が不可であることを示す情報を表示し、その処理は、ステップＳ１に戻る。
【０１４０】
次に、図１９のフローチャートを参照して、更新確認処理について説明する。
【０１４１】
ステップＳ２１において、出力コマンドデータ更新部２０１は、更新が指定されたカスタムデータは、出力コマンドデータを含んでいるか否かを判定し、例えば、出力コマンドデータを含んでいると判定された場合、その処理は、ステップＳ２２に進む。
【０１４２】
ステップＳ２２において、出力コマンドデータ更新部２０１は、更新後の出力コマンドデータ管理テーブル上の不具合を検出し、その処理は、ステップＳ２３に進む。例えば、記録媒体４に記録されている出力コマンドデータ管理テーブル３２１が図９で示される状態である場合、図２０で示されるような更新用出力コマンドデータ管理テーブルで管理される出力コマンドデータが更新されようとするものとする。
【０１４３】
図２０において、最上段にファンクションバージョン６２１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン６２２が示されており、今の場合、「１．１．０」と示されており、更新用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。
【０１４４】
テーブル６２３においては、コマンド名の欄には、上から「ダンス１」、および、「喜び２」が示されている。
【０１４５】
さらに、「ダンス１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Dance1Motion」が、Ｌｅｄ出力データ名として「Dance1Led」が、Ｓｏｕｎｄ出力データ名として「−」が、それぞれ示されている。また、「喜び２」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Joy2Motion」が、Ｌｅｄ出力データ名として「Joy2Led」が、Ｓｏｕｎｄ出力データ名として「Joy2Sound」が、それぞれ示されている。
【０１４６】
出力コマンドデータ更新部２０１は、出力コマンド毎に、ファンクションバージョン、テーブルバージョン、姿勢、Ｌｅｇ出力データ名、Ｌｅｄ出力データ名、およびＳｏｕｎｄ出力データ名について、図９で示される記録媒体４に記録された出力コマンドデータ管理テーブル３２１と、図２０で示されるカスタムDB１７１の更新用出力コマンドデータ管理テーブルとを比較し、差異の有無を確認し、図９の出力コマンドデータ管理テーブル３２１のうち、「ダンス１」、および、「喜び２」のコマンドについて不具合があるか否かを確認する。より詳細には、出力コマンドデータ更新部２０１は、出力リソースである姿勢、Ｌｅｇ出力データ名、Ｌｅｄ出力データ名、およびＳｏｕｎｄ出力データ名の各項目に有無のパターン（ファイル名として記録がある場合、その項目は有りと判定し、「−」が記録されている場合、その項目は無しと判定する）を比較し、それらのパターンが一致する場合、不具合が無いものと判定する。ただし、姿勢については、「Sit」である場合、有りと判定する。
【０１４７】
図２０においては、出力リソースである姿勢、Ｌｅｇ出力データ名、Ｌｅｄ出力データ名、およびＳｏｕｎｄ出力データ名の各項目に有無のパターンは、図９の出力コマンドデータ管理テーブル３２１と同様であるので、出力コマンドデータ更新部２０１は、不具合を検出せず（不具合無しと検出され）、その処理は、ステップＳ２３に進む。
【０１４８】
一方、例えば、更新用出力コマンドデータ管理テーブルが、図２１で示されるような場合、出力コマンドデータ更新部２０１は、不具合を検出する（不具合有りと検出する）。すなわち、図２１において最上段にファンクションバージョン６４１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン６４２が示されており、今の場合、「１．２．０」と示されており、更新用出力コマンドデータ管理テーブルのテーブルバージョンが１．２．０であることが示されている。
【０１４９】
テーブル６４３においては、コマンド名の欄には、上から「ダンス１」、および、「喜び２」が示されている。
【０１５０】
さらに、「ダンス１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Dance1Motion」が、Ｌｅｄ出力データ名として「Dance1Led」が、Ｓｏｕｎｄ出力データ名として「Dance1Sound」が、それぞれ示されている。また、「喜び２」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「Joy2Motion」が、Ｌｅｄ出力データ名として「Joy2Led」が、Ｓｏｕｎｄ出力データ名として「Joy2Sound」が、それぞれ示されている。
【０１５１】
すなわち、図２１の更新用出力コマンドデータ管理テーブルにおいては、「ダンス１」のＳｏｕｎｄ出力データ名として「Dance1Sound」が、記録されているが、図９においては、「−」が記録されており、Ｓｏｕｎｄ出力データ名の項目の有無のパターンが異なる。結果として、出力コマンドデータ更新部２０１は、図２１の更新用出力コマンドデータ管理テーブルと、図９の更新用出力コマンドデータ管理テーブル３２１を比較し、不具合を検出し、その処理は、ステップＳ２３に進む。
【０１５２】
尚、テーブルバージョン６２２，６４２は、出力リソースである姿勢、Ｌｅｇ出力データ名、Ｌｅｄ出力データ名、およびＳｏｕｎｄ出力データ名の各項目に有無のパターン（ファイル名として記録がある場合、その項目は有りと判定し、「−」が記録されている場合、その項目は無しと判定する）に基づいて、決定されるものであるので、出力コマンドデータ更新部２０１がテーブルバージョン６２２，６４２を比較することにより、一致しないとき、更新後の出力コマンドデータ管理テーブル３２１の不具合を検出するようにしてもよい。
【０１５３】
ステップＳ２１において、出力コマンドではないと判定された場合、または、ステップＳ２２の処理が終了した場合、ステップＳ２３において、認識パターン更新部２０２は、更新が指定されたカスタムデータは、画像パターン認識データを含んでいるか否かを判定し、例えば、画像パターン認識データを含んでいると判定された場合、その処理は、ステップＳ２４に進む。
【０１５４】
ステップＳ２４において、認識パターン更新部２０２は、更新後の画像パターン認識データ管理テーブル上の不具合の有無を検出する。例えば、記録媒体４に記録されている画像パターン認識データ管理テーブル３４１が図１１で示される状態である場合、図２２で示されるような更新用画像パターン認識データ管理テーブルで管理される画像パターン認識データが更新されようとするものとする。
【０１５５】
図２２において、最上段にファンクションバージョン６６１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン６６２が示されており、今の場合、「１．１．０」と示されており、更新用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。
【０１５６】
テーブル６６３においては、認識データ名の欄には、「カード１」が示されている。さらに、「カード１」においては、内容として「ハートマーク」が示されている。
【０１５７】
認識パターン更新部２０２は、認識データ毎の内容について、図１１で示される記録媒体４に記録された画像パターン認識データ管理テーブル３４１と、図２２で示されるカスタムDB１７１の更新用画像パターン認識データ管理テーブルとを比較し、差異の有無を確認し、図１１の画像パターン認識データ管理テーブル３４１のうち、「カード１」について不具合があるか否かを確認する。
【０１５８】
すなわち、今の場合、図１１の画像パターン認識データ管理テーブル３４１における「カード１」に対応する内容は、「スペードマーク」であるが、これを図２２の更新用画像パターン認識データ管理テーブルの内容である「ハートマーク」に入れ替えても不具合は生じない。従って、図２２で示されるような更新用画像パターン認識データ管理テーブルの場合、認識パターン更新部２０２は、不具合を検出せず、その処理は、ステップＳ２５に進む。
【０１５９】
一方、例えば、更新用画像パターン認識データ管理テーブルが、図２３で示されるような場合、認識パターン更新部２０２は、不具合を検出する。すなわち、図２３において最上段にファンクションバージョン６８１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン６８２が示されており、今の場合、「１．２．０」と示されており、更新用画像パターン認識データ管理テーブルのテーブルバージョンが１．２．０であることが示されている。また、テーブル６８３においては、認識データ名の欄には、「カード２」が示されている。さらに、認識データ名が「カード２」においては、内容として「スペードマーク」が示されている。
【０１６０】
すなわち、今の場合、図１１の画像パターン認識データ管理テーブル３４１における「カード２」に対応する内容は、「ダイヤマーク」であるが、これを図２３の更新用画像パターン認識データ管理テーブルの内容である「スペードマーク」に入れ替えると、「カード１」においても、「カード２」においても「スペードマーク」となるため、一意に決めることができなくなるため、不具合が生じる。従って、図２３で示されるような更新用画像パターン認識データ管理テーブルの場合、認識パターン更新部２０２は、不具合を検出し、その処理は、ステップＳ２５に進む。
【０１６１】
ステップＳ２３において、画像パターン認識データではないと判定された場合、または、ステップＳ２４の処理が終了した場合、ステップＳ２５において、認識単語更新部２０３は、更新が指定されたカスタムデータは、音声認識単語データを含んでいるか否かを判定し、例えば、音声認識単語データを含んでいると判定された場合、その処理は、ステップＳ２６に進む。
【０１６２】
ステップＳ２６において、認識単語更新部２０３は、更新後の音声認識単語データ管理テーブル上の不具合を検出する。例えば、記録媒体４に記録されている音声認識単語データ管理テーブル３５１が図１２で示される状態である場合、図２４で示されるような更新用音声認識単語データ管理テーブルで管理される音声認識単語データが更新されようとするものとする。
【０１６３】
図２４において、最上段にファンクションバージョン７０１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン７０２が示されており、今の場合、「１．１．０」と示されており、更新用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。また、テーブル７０３においては、認識データ名の欄には、「GoodMorning」が示されている。さらに、「GoodMorning」においては、内容として「GoodMorning」が示されている。
【０１６４】
認識単語更新部２０３は、認識データ毎の内容について、図１２で示される記録媒体４に記録された音声認識単語データ管理テーブル３５１と、図２４で示されるカスタムDB１７１の更新用音声認識単語データ管理テーブルとを比較し、差異の有無を確認し、図１２の音声認識単語データ管理テーブル３５１のうち、「GoodMorning」について不具合があるか否かを確認する。
【０１６５】
すなわち、今の場合、図１２の音声認識単語データ管理テーブル３４１における「GoodMorning」に対応する内容は、「おはよう」であるが、これを図２４の更新用音声認識単語データ管理テーブルの内容である「GoodMorning」に入れ替えても不具合は生じない。従って、図２４で示されるような更新用音声認識単語データ管理テーブルの場合、認識単語更新部２０３は、不具合を検出せず、その処理は、ステップＳ２７に進む。
【０１６６】
一方、例えば、更新用音声認識単語データ管理テーブルが、図２５で示されるような場合、認識単語更新部２０３は、不具合を検出する。すなわち、図２５において最上段にファンクションバージョン７２１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン７２２が示されており、今の場合、「１．２．０」と示されており、更新用音声認識単語データ管理テーブルのテーブルバージョンが１．２．０であることが示されている。また、テーブル７２３においては、認識データ名の欄には、「GoodMorning」が示されている。さらに、認識データ名が「GoodMorning」においては、内容として「こんにちわ」が示されている。
【０１６７】
すなわち、今の場合、図１２の音声認識単語データ管理テーブル３５１における「GoodMorning」に対応する内容は、「おはよう」であるが、これを図２３の更新用音声認識単語データ管理テーブルの内容である「こんにちわ」に入れ替えると、「GoodMorning」においても、「Hello」においても「こんにちわ」となるため、一意に決めることができなくなるため、不具合が生じる。従って、図２５で示されるような更新用音声認識単語データ管理テーブルの場合、認識単語更新部２０３は、不具合を検出し、その処理は、ステップＳ２７に進む。
【０１６８】
ステップＳ２５において、音声認識単語データではないと判定された場合、または、ステップＳ２６の処理が終了した場合、ステップＳ２７において、内部状態パラメータ更新部２０４は、更新が指定されたカスタムデータは、内部状態パラメータを含んでいるか否かを判定し、例えば、内部状態パラメータを含んでいると判定された場合、その処理は、ステップＳ２８に進む。
【０１６９】
ステップＳ２８において、内部状態パラメータ更新部２０４は、更新後の内部状態パラメータ管理テーブル上の不具合を検出する。
【０１７０】
例えば、記録媒体４に記録されている内部状態パラメータ管理テーブル３６１が図１３で示される状態である場合、図２６で示されるような更新用内部状態パラメータ管理テーブルで管理される内部状態パラメータが更新されようとするものとする。
【０１７１】
図２６において、最上段にファンクションバージョン７４１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン７４２が示されており、今の場合、「１．１．０」と示されており、更新用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。また、テーブル７４３においては、内部状態の欄には、上から「成長度」、「性格」、「感情（喜び，怒り，悲しみ）」、「本能（運動欲，愛情欲，食欲）」、および、「覚醒度」と示されており、それぞれ上から「赤ちゃん」、「好奇心いっぱい」、「喜び：高，怒り：低，悲しみ：低」、「運動欲：高，愛情欲：中，食欲：高」、および、「高」と示されている。
【０１７２】
内部状態パラメータ更新部２０４は、内部状態毎の内容について、図１３で示される記録媒体４に記録された内部状態パラメータ管理テーブル３６１と、図２６で示されるカスタムDB１７１の更新用内部状態パラメータ管理テーブルとを比較し、差異の有無を確認し、図１３の内部状態パラメータ管理テーブル３６１について不具合があるか否かを確認する。
【０１７３】
すなわち、今の場合、図１３の内部状態パラメータ管理テーブル３６１における「成長度」に対応する内容は、「青年」であり、「性格」に対応する内容は、「おとなしい」であり、「本能（運動欲，愛情欲，食欲）」に対応する内容は、「運動欲：低，愛情欲：低，食欲：中」であるが、これを図２６の更新用内部状態パラメータ管理テーブルの内容である「赤ちゃん」、「好奇心いっぱい」、および、「運動欲：高，愛情欲：中，食欲：高」に入れ替えても不具合は生じない。従って、図２６で示されるような更新用内部状態パラメータ管理テーブルの場合、内部状態パラメータ更新部２０４は、不具合を検出せず、その処理は、ステップＳ２８に進む。
【０１７４】
一方、例えば、更新用内部状態パラメータ管理テーブルが、図２７で示されるような場合、内部状態パラメータ更新部２０４は、不具合を検出する。すなわち、図２７において最上段にファンクションバージョン７６１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン７６２が示されており、今の場合、「１．２．０」と示されており、更新用内部状態パラメータ管理テーブルのテーブルバージョンが１．２．０であることが示されている。また、テーブル７６３においては、内部状態の欄には、「成長度」、および、「第６感」が示されている。さらに、内容には、それぞれ「１００万年後の人類の成人並」、および、「レベル５」が示されている。
【０１７５】
すなわち、今の場合、図１３の音声認識単語データ管理テーブル３５１における「成長度」に対応する内容は、「青年」であるが、これを図２３の更新用音声認識単語データ管理テーブルの内容である「１００万年後の人類の成人並」に入れ替えると、成長度が、テーブルバージョン１．１．０で取り得る値の範囲を超えるため不具合が生じてしまう。また、図１３の音声認識単語データ管理テーブル３５１における内部状態の項目に存在しない「第６感」は、テーブルバージョン１．１．０で取り扱うことができない内容であるので、不具合が生じるものとする。従って、図２６で示されるような更新用内部状態パラメータ管理テーブルの場合、内部状態パラメータ更新部２０４は、不具合を検出し、その処理は、ステップＳ２９に進む。
【０１７６】
ステップＳ２７において、内部状態パラメータは含まれていないと判定された場合、または、ステップＳ２８の処理が終了した場合、ステップＳ２９において、インタフェース部１８４は、更新後の出力コマンドデータ管理テーブル３２１の不具合が検出されたか否か、すなわち、ステップＳ２２，Ｓ２４，Ｓ２６，Ｓ２８の処理のいずれかで不具合有りと検出されたか否かを判定し、不具合が検出されていないと判定された場合、ステップＳ３０において、確認ＯＫとみなし、更新確認処理を終了する。また、ステップＳ２９において、更新後の出力コマンドデータ管理テーブル３２１の不具合が検出されたと判定された場合、ステップＳ３１において、確認ＮＧとみなし、更新確認処理を終了する。
【０１７７】
次に、図２８のフローチャートを参照して、追加確認処理について説明する。
【０１７８】
ステップＳ４１において、ファンクションデータ追加部１９１は、追加後のファンクション管理テーブル上の不具合を検出する。例えば、記録媒体４に記録されているファンクション管理テーブル３１１が図８で示される状態である場合、図２９で示されるような、「絵本シナリオ」（ロボット１に絵本を読む動作をさせるシナリオデータ）の追加用ファンクション管理テーブルで管理されるファンクションデータが追加されようとするものとする。
【０１７９】
図２９においては、最上段にファンクションバージョン８０１が示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、ファンクション名８０２が示されており、今の場合、上から「画像パターン認識」、「音声認識」、「４足脚アクチュエータ出力制御」、「ＬＥＤ出力制御」および、「音出力制御」と示されている。
【０１８０】
ファンクションデータ追加部１９１は、ファンクション名に対応する各機能について、図８で示される記録媒体４に記録されたファンクション管理テーブル３１１と、図２９で示されるカスタムDB１７１の追加用ファンクション管理テーブルとを比較し、不具合があるか否かを確認する。
【０１８１】
図２９においては、「画像パターン認識」、「音声認識」、「４足脚アクチュエータ出力制御」、「ＬＥＤ出力制御」および、「音出力制御」は、図８のファンクション管理テーブル３２１に存在するものであるので、ファンクションデータ追加部１９１は、不具合を検出せず、その処理は、ステップＳ４２に進む。
【０１８２】
一方、例えば、追加用ファンクション管理テーブルが、図３０で示されるような「いいにおいは大好きシナリオ」（ロボット１に、においを嗅ぐ仕草をさせるシナリオデータ）の場合、ファンクションデータ追加部１９１は、不具合を検出する。すなわち、図３０において最上段にファンクションバージョン８２１が示されており、今の場合、「１．２．０」と示されており、ファンクションバージョンが１．２．０であることが示されている。その下には、ファンクション名８２２が示されており、今の場合、上から「におい認識」、「音声認識」、「４足脚アクチュエータ出力制御」、「ＬＥＤ出力制御」および、「音出力制御」と示されている。
【０１８３】
すなわち、図３０の追加用ファンクション管理テーブルにおいては、「におい認識」が、記録されているが、図８においては、記録されていないので、項目の有無のパターンが異なる。結果として、ファンクションデータ更新部１９１は、図３０の追加用ファンクション管理テーブルと、図８のファンクション管理テーブル３１１を比較すると不具合を検出し、その処理は、ステップＳ４２に進む。
【０１８４】
ステップＳ４２において、シナリオ追加部１９１は、追加後のシナリオ管理テーブル上の不具合を検出する。例えば、記録媒体４に記録されているシナリオ管理テーブル３３１が図１０で示される状態である場合、図３１で示されるような、「絵本シナリオ」の追加シナリオ管理テーブルで管理されるシナリオデータが追加されようとするものとする。
【０１８５】
図３１において、最上段にファンクションバージョン８４１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、テーブルバージョン８４２が示されており、今の場合、「１．１．０」と示されており、追加シナリオ管理テーブルのテーブルバージョンが１．１．０であることが示されている。
【０１８６】
テーブル８４３には、右からシナリオID、シナリオデータ名、および、ローカルシナリオIDが記録されている。シナリオID、および、シナリオデータ名は、記録媒体４に記録されたシナリオ管理テーブル３３１のシナリオIDと同様のものであり、ローカルシナリオIDは、カスタムDB１７１内でのIDである。今の場合、シナリオIDとして「追加シナリオ２」と記録され、シナリオデータ名として「Add２」と記録され、さらに、ローカルシナリオIDとして「絵本」と記録されている。
【０１８７】
さらに、この図３１で管理される追加シナリオデータが、例えば、図３２で示されるものであるものとする。
【０１８８】
図３２のシナリオデータについて説明する。図３２においては、ファンクションバージョン表示欄８５１においては、「１．１．０」と表示されており、ファンクションバージョンが１．１．０であることが示されている。ローカルシナリオIDとして「絵本」と記されており、このシナリオが「絵本」のシナリオデータであることが示されている。
【０１８９】
図３２のシナリオデータにおいては、状態１において、「はじめ」の状態となっており、姿勢が「Sit」で示されるように座っている状態で、かつ、出力データが無いことが示されている。この状態からは無条件に、出力コマンド「追加１−１」（例えば、絵本を要求する動作）（出力コマンドの追加については図３５を参照して後述する）が指令され、状態は、状態１から状態２へと変化する。
【０１９０】
状態２において、状態は、「絵本要求動作中」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「追加１−１」に対応する「PicBookReqMotion」、「PicBookReqLed」、および「PicBookReqSound」（図３５）が出力データとして実行される。さらに、この状態２において、絵本を要求する処理が完了した場合、「BGM１」の出力コマンドを出力し、状態は、状態２から状態３に遷移する。
【０１９１】
状態３において、状態は、「待ち状態」となり、コマンド「BGM1」に対応する「Bgm1Sound」が実行される。画像認識処理により絵本の表紙が検出されると、出力コマンド「追加１−２」（絵本を発見する動作）（図３５）が指令され、状態は、状態３から状態４に遷移する。
【０１９２】
状態４において、状態は、「絵本発見動作中」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「追加１−２」に対応する「PicBookCoverMotion」、「PicBookCoverLed」、および「PicBookCoverSound」（図３５）が出力データとして実行される。さらに、この状態４において、絵本を発見する処理が完了した場合、状態は、状態４から状態５に遷移する。
【０１９３】
状態５において、状態は、「待ち状態」となり、画像認識処理により「絵本の１ページ目」を認識して、かつ、音声認識処理により「絵本を読んで」という情報が認識されると、出力コマンド「追加１−３」（絵本ページ１）（図３５）が指令され、状態は、状態５から状態６に遷移する。
【０１９４】
状態６において、状態は、「絵本ページ１動作中」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「追加１−３」に対応する「PicBookCoverMotion」、「PicBookCoverLed」、および「PicBookCoverSound」（図３５）が出力データとして実行される。さらに、この状態６において、絵本ページ１の処理が完了した場合、コマンドとして「追加１−１」を指令し、状態は、状態２に戻り、それ以降の処理が繰り返される。
【０１９５】
すなわち、図３２で示されるシナリオデータにおいては矛盾がなく、図３１の追加シナリオ管理テーブルに不具合は生じないので、シナリオ追加部１９２は、不具合を検出しない。
【０１９６】
一方、例えば、記録媒体４に記録されているシナリオ管理テーブル３３１が図１０で示される状態である場合、図３３で示されるような、「いいにおいシナリオ」の追加シナリオ管理テーブルで管理されるシナリオデータが追加されようとするものとする。
【０１９７】
図３３において、最上段にファンクションバージョン８５１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．２．０」と示されており、ファンクションバージョンが１．２．０であることが示されている。その下には、テーブルバージョン８５２が示されており、今の場合、「１．１．０」と示されており、追加シナリオ管理テーブルのテーブルバージョンが１．１．０であることが示されている。
【０１９８】
テーブル８５３には、右からシナリオID、シナリオデータ名、および、ローカルシナリオIDが記録されている。今の場合、シナリオIDとして「追加シナリオ２」と記録され、シナリオデータ名として「Add２」と記録され、さらに、ローカルシナリオIDとして「絵本」と記録されている。さらに、この図３３で管理される追加シナリオデータが、例えば、図３４で示されるものであるものとする。
【０１９９】
図３４のシナリオデータについて説明する。図３４においては、ファンクションバージョン表示欄８６１においては、「１．２．０」と表示されており、ファンクションバージョンが１．２．０であることが示されている。ローカルシナリオIDとして「いいにおい」と記されており、このシナリオが「いいにおい」のシナリオデータであることが示されている。
【０２００】
図３４のシナリオデータにおいては、状態１において、「はじめ」の状態となっており、姿勢が「Sit」で示されるように座っている状態で、かつ、出力データが無いことが示されている。この状態からは無条件に、出力コマンド「Bgm1」が指令され、状態は、状態１から状態２へと変化する。
【０２０１】
状態２において、状態は、「待ち状態」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「Bgm1」に対応する「Bgm1Sound」が出力データとして実行される。さらに、この状態２において、におい認識により「いいにおい」が認識された場合、「喜び１」の出力コマンドと共に重ね実行指定がなされ、状態は、状態２から状態３に遷移する。
【０２０２】
状態３において、状態は、「よころび動作中」となり、「Joy1Led」と「Bgm1Sound」が実行される。出力コマンド「喜び１」により指定された「Joy1Led」の処理が終了すると、出力コマンド「ダンス１」が指令され、状態は、状態３から状態４に進む。
【０２０３】
状態４において、状態は、「ダンス動作中」となり、姿勢が「Sit」で示されるように座っている状態で、出力コマンド「ダンス１」に対応する「Dance1Motion」、および、「Dance1Led」と共に、「Bgm1Sound」が出力データとして実行される。さらに、この状態４において、出力コマンド「ダンス１」に対応する動作が終了した場合、その状態は、状態４から状態２に遷移し、それ以降の処理が繰り返される。
【０２０４】
すなわち、図３４で示されるシナリオデータにおいてはファンクションバージョン１．１．０にはない、「におい認識」があり、シナリオデータを実行するに当たり、図３３の追加シナリオ管理テーブルに不具合が生じるので、シナリオ追加部１９２は、不具合を検出することになる。
【０２０５】
ステップＳ４３において、出力コマンドデータ追加部１９３は、追加後の出力コマンドデータ管理テーブル上の不具合を検出し、その処理は、ステップＳ４４に進む。例えば、記録媒体４に記録されている出力コマンドデータ管理テーブル３２１が図９で示される状態である場合、図３５で示されるような、絵本シナリオの追加用出力コマンドデータ管理テーブルで管理される出力コマンドデータが追加されようとするものとする。
【０２０６】
図３５においては、最上段にファンクションバージョン８８１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。シナリオID８８２が示されており、今の場合、「絵本」と記されている。さらに、その下には、テーブルバージョン８８３が示されており、今の場合、「１．１．０」と示されており、更新用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。
【０２０７】
テーブル８８４においては、コマンド名の欄には、上から「追加１−１」、「追加１−２」、および、「追加１−３」が示されている。
【０２０８】
さらに、「追加１−１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「PicBookReqMotion」が、Ｌｅｄ出力データ名として「PicBookReqLed」が、Ｓｏｕｎｄ出力データ名として「PicBookReqSound」が、シナリオ内ローカルコマンド名として「絵本要求」がそれぞれ示されている。
【０２０９】
また、「追加１−２」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「PicBookCoverMotion」が、Ｌｅｄ出力データ名として「PicBookCoverLed」が、Ｓｏｕｎｄ出力データ名として「PicBookCoverSound」が、シナリオ内ローカルコマンド名として「絵本発見」がそれぞれ示されている。
【０２１０】
また、「追加１−３」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「PicBookPage1Motion」が、Ｌｅｄ出力データ名として「PicBookPage1Led」が、Ｓｏｕｎｄ出力データ名として「PicBookPage1Sound」が、シナリオ内ローカルコマンド名として「絵本ページ１」がそれぞれ示されている。
【０２１１】
シナリオ内ローカルコマンドとは、追加される出力コマンドデータは、シナリオデータにおいて必要なものでしかなく、他のシナリオデータには、使用することができないので、追加されるシナリオデータ内でのみ使用されるローカルなコマンドである。
【０２１２】
出力コマンドデータ追加部１９３は、図３２のシナリオデータで必要とされる出力コマンドデータを参照して、図９の出力コマンドデータ管理テーブル３２１のうち、「追加１−１」、「追加１−２」、および、「追加１−３」のコマンドについて不具合があるか否かを確認する。
【０２１３】
図３５においては、図３２のシナリオデータを実行する際に必要なコマンドが記録されているので、出力コマンドデータ追加部１９３は、不具合を検出せず、その処理は、ステップＳ４４に進む。
【０２１４】
一方、例えば、追加用出力コマンドデータ管理テーブルが、図３６で示されるような場合、出力コマンドデータ追加部１９３は、不具合を検出する。すなわち、図３６において最上段にファンクションバージョン９０１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、シナリオID９０２が示されており、今の場合、「黄色いモノ」と記されている。さらに、その下には、テーブルバージョン９０３が示されており、今の場合、「１．１．０」と示されており、追加用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。テーブル９０４においては、コマンド名の欄には、上から「追加１−１」が示されている。
【０２１５】
さらに、「追加１−１」のコマンドにおいては、姿勢として「Sit」が、Ｌｅｇ出力データ名として「FoundYellowObjMotion」が、Ｌｅｄ出力データ名として「FoundYellowObjLed」が、Ｓｏｕｎｄ出力データ名として「FoundYellowObjSound」が、シナリオ内ローカルコマンド名として「黄色いモノ発見」がそれぞれ示されている。
【０２１６】
出力コマンドデータ追加部１９３は、図３２のシナリオデータで必要とされる出力コマンドデータを参照して、図３６の出力コマンドデータ管理テーブルのうち、「追加１−１」のコマンドについて不具合があるか否かを確認する。
【０２１７】
図３６においては、図３２のシナリオデータを実行する際に必要なコマンドが記録されていない（図３２のシナリオデータでは「黄色いモノ発見」というコマンドは使用されていない）ので、出力コマンドデータ追加部１９３は、不具合を検出し、その処理は、ステップＳ４４に進む。
【０２１８】
ステップＳ４４において、認識パターン追加部１９５は、追加後の画像パターン認識データ管理テーブル上の不具合を検出する。例えば、記録媒体４に記録されている画像パターン認識データ管理テーブル３４１が図１１で示される状態である場合、図３７で示されるような追加用画像パターン認識データ管理テーブルで管理される画像パターン認識データが追加されようとするものとする。
【０２１９】
図３７において、最上段にファンクションバージョン９２１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、ローカルシナリオID９２２が示されており、今の場合、「絵本」と記されている。さらに、その下には、テーブルバージョン９２３が示されており、今の場合、「１．１．０」と示されており、追加用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。
【０２２０】
テーブル９２４においては、右から認識データ名、ローカル認識データ名、および、内容が記録されており、今の場合、認識データ名の欄には、上から「追加１−１」および「追加１−２」が示されている。
【０２２１】
さらに、「追加１−１」においては、ローカル認識データ名として「絵本表紙」と示されており、内容として「絵本表紙データ」が示されている。また、「追加１−２」においては、ローカル認識データ名として「絵本ページ１」と示されており、内容として「絵本ページ１データ」が示されている。
【０２２２】
認識パターン追加部１９４は、図７の認識データ毎の内容について、図３２のシナリオデータで必要とされる画像パターン認識データを参照して、「追加１−１」の画像パターン認識データについて不具合があるか否かを確認する。
【０２２３】
図３７においては、図３２のシナリオデータを実行する際に必要な画像パターン認識データが記録されているので、認識パターン追加部１９４は、不具合を検出せず、その処理は、ステップＳ４５に進む。
【０２２４】
一方、例えば、追加用画像パターン認識データ管理テーブルが、図３８で示されるような場合、認識パターン追加部１９４は、不具合を検出する。すなわち、図３８において最上段にファンクションバージョン９４１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、ローカルシナリオID９４２が示されており、今の場合、「カード」と記されている。さらに、その下には、テーブルバージョン９４３が示されており、今の場合、「１．２．０」と示されており、追加用画像パターン認識データ管理テーブルのテーブルバージョンが１．２．０であることが示されている。また、テーブル９４５においては、認識データ名の欄には、「カード３」が示されている。さらに、認識データ名が「カード３」においては、内容として「ハートマーク」が示されている。
【０２２５】
すなわち、今の場合、図３８の追加用画像パターン認識データ管理テーブルのローカルシナリオIDである「カード」は、図３１の追加シナリオ管理テーブルのローカルシナリオIDである「絵本」とは異なるため、シナリオデータを実行すると不具合が生じる。従って、図３８で示されるような追加用画像パターン認識データ管理テーブルの場合、認識パターン追加部１９４は、不具合を検出し、その処理は、ステップＳ４５に進む。
【０２２６】
ステップＳ４５において、認識単語追加部１９５は、追加後の音声認識単語データ管理テーブル上の不具合を検出する。例えば、記録媒体４に記録されている音声認識単語データ管理テーブル３５１が図１２で示される状態である場合、図３９で示されるような追加用音声認識単語データ管理テーブルで管理される音声認識単語データが更新されようとするものとする。
【０２２７】
図３９において、最上段にファンクションバージョン９６１が示されており、出力コマンドを実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、ローカルシナリオID９６２が示されており、今の場合、「絵本」と記されている。さらに、その下には、テーブルバージョン９６３が示されており、今の場合、「１．１．０」と示されており、追加用出力コマンドデータ管理テーブルのテーブルバージョンが１．１．０であることが示されている。また、テーブル９６４においては、認識データ名の欄には、「追加１−１」が示されている。さらに、ローカル認識データ名の欄には、「ReadPictureBook」と示されており、内容として「えほんよんで」が示されている。
【０２２８】
認識単語追加部１９５は、認識データ毎の内容について、図３９で示されるカスタムDB１７１の追加用音声認識単語データ管理テーブルと図３２のシナリオデータ管理テーブルとを比較し、差異の有無を確認し、図３９の音声認識単語データ管理テーブルの「追加１−１」について不具合があるか否かを確認する。
【０２２９】
すなわち、今の場合、図３９の音声認識単語データ管理テーブルにおける「追加１−１」に対応する内容は、「絵本読んで」であるが、これは図３２の状態５における条件として用いられている音声認識単語データであるので、図３９の追加用音声認識単語データ管理テーブルの内容である「追加１−１」を追加しても不具合は生じない。従って、図３６で示されるような追加用音声認識単語データ管理テーブルの場合、認識単語追加部１９５は、不具合を検出せず、その処理は、ステップＳ４６に進む。
【０２３０】
一方、例えば、追加用音声認識単語データ管理テーブルが、図４０で示されるような場合、認識単語追加部１９５は、不具合を検出する。すなわち、図４０において最上段にファンクションバージョン９８１が示されており、音声認識処理を実行するのに必要なファンクションデータ３０１に対応するバージョンが示されており、今の場合、「１．１．０」と示されており、ファンクションバージョンが１．１．０であることが示されている。その下には、ローカルシナリオID９８２が示されており、今の場合、「さようなら」と記されている。さらに、テーブルバージョン９８３が示されており、今の場合、「１．２．０」と示されており、追加用音声認識単語データ管理テーブルのテーブルバージョンが１．２．０であることが示されている。また、テーブル９８４においては、認識データ名の欄には、「GoodBye」が示されている。さらに、認識データ名が「GoodBye」においては、内容として「さようなら」が示されている。
【０２３１】
すなわち、今の場合、図４０の追加用音声認識単語データ管理テーブルのシナリオIDである「さようなら」は、図３２の追加シナリオ管理テーブルのローカルシナリオIDである「絵本」とは異なるため、シナリオデータを実行すると不具合が生じる。従って、図４０で示されるような追加用音声認識単語データ管理テーブルの場合、認識単語追加部１９５は、不具合を検出し、その処理は、ステップＳ４６に進む。
【０２３２】
ステップＳ４６において、インタフェース部１８４は、ステップＳ４１乃至Ｓ４５の処理により、いずれかの項目で不具合が検出されたか否かを判定し、いずれかの項目で不具合が検出されていないと判定された場合、ステップＳ４７において、追加確認処理結果として、追加確認ＯＫを出す。また、ステップＳ４６において、ステップＳ４１乃至Ｓ４５の処理により、いずれかの項目で不具合が検出されたか否かを判定し、いずれかの項目で不具合が検出されたと判定された場合、ステップＳ４８において、追加確認処理結果として、追加確認ＮＧを出す。
【０２３３】
尚、以上においては、PC２にカスタムツール３をインストールし、記録媒体４に記録されたロボット１の動作を制御するプログラム、または、データである、ファンクションデータ３０１、出力コマンドデータ３０２、シナリオデータ３０３、画像パターン認識データ３０４、任司背認識データ３０５、および、内部状態パラメータ３０６を更新、または、追加して、記録媒体４をロボット１に装着させるようにすることで、自律動作をさせるようにする例について説明してきたが、カスタムツール３をロボット１自身にインストールするようにして、ロボット１のみで、プログラム、または、データの更新、または、追加できるようにしてもよい。
【０２３４】
以上の処理により、ロボット１の動作を制御するプログラム、または、データである、ファンクションデータ３０１、出力コマンドデータ３０２、シナリオデータ３０３、画像パターン認識データ３０４、任司背認識データ３０５、および、内部状態パラメータ３０６を更新、または、追加する際、ロボットの持つ機能や、シナリオデータ上の矛盾により生じる不具合を防止することが可能となる。
【０２３５】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０２３６】
この記録媒体は、図４に示すようにPC２に予め組み込まれた状態でユーザに提供される、プログラムが記録されている記憶部５８だけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク７１（フレキシブルディスクを含む）、光ディスク７２（CD-ROM(Compact Disk-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク７３（MD（Mini-Disc）（登録商標）を含む）、もしくは半導体メモリ７４（Memory Stickを含む）などよりなるパッケージメディアにより構成される。
【０２３７】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０２３８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２３９】
【図１】本発明を適用したロボット制御システムの一実施の形態の構成を示す図である。
【図２】図１のロボットの外観構成例を示す斜視図である。
【図３】図１のロボットの内部構成例を示すブロック図である。
【図４】図１のPCの内部構成例を示すブロック図である。
【図５】図１のロボットの機能を示す機能ブロック図である。
【図６】図１のPCの機能を示す機能ブロック図である。
【図７】図１の記録媒体に記録されているプログラム、および、データ構成を示す図である。
【図８】図７のファンクション管理テーブルの構成を説明する図である。
【図９】図７の出力コマンドデータ管理テーブルの構成を説明する図である。
【図１０】図７のシナリオ管理テーブルの構成を説明する図である。
【図１１】図７の画像パターン認識データ管理テーブルの構成を説明する図である。
【図１２】図７の音声認識単語データ管理テーブルの構成を説明する図である。
【図１３】図７の内部パラメータ管理テーブルの構成を説明する図である。
【図１４】本発明を適用したロボット制御システムの動作を説明する図である。
【図１５】図７のシナリオデータの構成を説明する図である。
【図１６】図７のシナリオデータの構成を説明する図である。
【図１７】図１のPCによる更新追加処理を説明するフローチャートである。
【図１８】図１のPCによる更新追加処理の操作画面を説明する図である。
【図１９】図１７の更新確認処理を説明するフローチャートである。
【図２０】更新確認処理により更新が認められる更新用出力コマンドデータ管理テーブルの構成を説明する図である。
【図２１】更新確認処理により更新が認められない更新用出力コマンドデータ管理テーブルの構成を説明する図である。
【図２２】更新確認処理により更新が認められる更新用画像パターン認識データ管理テーブルの構成を説明する図である。
【図２３】更新確認処理により更新が認められない更新用画像パターン認識データ管理テーブルの構成を説明する図である。
【図２４】更新確認処理により更新が認められる更新用音声認識単語データ管理テーブルの構成を説明する図である。
【図２５】更新確認処理により更新が認められない更新用音声認識単語データ管理テーブルの構成を説明する図である。
【図２６】更新確認処理により更新が認められる更新用内部状態パラメータ管理テーブルの構成を説明する図である。
【図２７】更新確認処理により更新が認められない更新用内部状態パラメータ管理テーブルの構成を説明する図である。
【図２８】図１７の追加確認処理を説明するフローチャートである。
【図２９】追加確認処理により追加が認められる追加用ファンクション管理テーブルの構成を説明する図である。
【図３０】追加確認処理により追加が認められない追加用ファンクション管理テーブルの構成を説明する図である。
【図３１】追加確認処理により追加が認められる追加用シナリオ管理テーブルの構成を説明する図である。
【図３２】図３２の追加用シナリオ管理テーブルで管理されるシナリオデータの構成を説明する図である。
【図３３】追加確認処理により追加が認められない追加用シナリオ管理テーブルの構成を説明する図である。
【図３４】図３３の追加用シナリオ管理テーブルで管理されるシナリオデータの構成を説明する図である。
【図３５】追加確認処理により追加が認められる追加用出力コマンドデータ管理テーブルの構成を説明する図である。
【図３６】追加確認処理により追加が認められない追加用出力コマンドデータ管理テーブルの構成を説明する図である。
【図３７】追加確認処理により追加が認められる追加用画像パターン認識データ管理テーブルの構成を説明する図である。
【図３８】追加確認処理により追加が認められない追加用画像パターン認識データ管理テーブルの構成を説明する図である。
【図３９】追加確認処理により追加が認められる追加用音声認識単語データ管理テーブルの構成を説明する図である。
【図４０】追加確認処理により追加が認められない追加用音声認識単語データ管理テーブルの構成を説明する図である。
【符号の説明】
【０２４０】
１  ロボット，  ２  PC，  ３  カスタムツール，  ４  記録媒体，  １７１  カスタムDB，  １８１  追加変更判定部，  １８２  データ追加部，  １８３  データ更新部，  １８４  インタフェース部，  １９１  ファンクションデータ追加部，  １９２  シナリオ追加部，  １９３  出力コマンドデータ追加部，  １９４  認識パターン追加部，  １９５  認識単語追加部，  ２０１  出力コマンドデータ更新部，  ２０２  認識パターン更新部，  ２０３  認識単語更新部，  ２０４  内部状態パラメータ追加部
【図１】
2005074601.tif 000003
【図２】
2005074601.tif 000004
【図３】
2005074601.tif 000005
【図４】
2005074601.tif 000006
【図５】
2005074601.tif 000007
【図６】
2005074601.tif 000008
【図７】
2005074601.tif 000009
【図８】
2005074601.tif 000010
【図９】
2005074601.tif 000011
【図１０】
2005074601.tif 000012
【図１１】
2005074601.tif 000013
【図１２】
2005074601.tif 000014
【図１３】
2005074601.tif 000015
【図１４】
2005074601.tif 000016
【図１５】
2005074601.tif 000017
【図１６】
2005074601.tif 000018
【図１７】
2005074601.tif 000019
【図１８】
2005074601.tif 000020
【図１９】
2005074601.tif 000021
【図２０】
2005074601.tif 000022
【図２１】
2005074601.tif 000023
【図２２】
2005074601.tif 000024
【図２３】
2005074601.tif 000025
【図２４】
2005074601.tif 000026
【図２５】
2005074601.tif 000027
【図２６】
2005074601.tif 000028
【図２７】
2005074601.tif 000029
【図２８】
2005074601.tif 000030
【図２９】
2005074601.tif 000031
【図３０】
2005074601.tif 000032
【図３１】
2005074601.tif 000033
【図３２】
2005074601.tif 000034
【図３３】
2005074601.tif 000035
【図３４】
2005074601.tif 000036
【図３５】
2005074601.tif 000037
【図３６】
2005074601.tif 000038
【図３７】
2005074601.tif 000039
【図３８】
2005074601.tif 000040
【図３９】
2005074601.tif 000041
【図４０】
2005074601.tif 000042