(57)【特許請求の範囲】
【請求項１】
ロボットに所定の動作を実行させるプログラムを実行する実行手段と、
前記実行手段により第１のプログラムが実行されることにより蓄積されるデータを、前記第１のプログラムのバージョン番号と共に保持する保持手段と、
前記保持手段により前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、
前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持手段により保持されているデータを維持し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持手段により保持されているデータを、前記格納媒体に格納された他のデータに更新する更新手段とを備え、
前記更新手段は、前記保持手段により保持されているデータを維持するとき、前記保持手段により保持可能なデータ数分だけ確保されている保持領域を、前記格納媒体により格納可能なデータ数分の保持領域に更新し、前記保持手段に保持されているデータを、前記第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、前記フラグを前記データを更新するように示す状態に設定する
ことを特徴とするロボット制御装置。
【請求項２】
ロボットに所定の動作を実行させるプログラムを実行する実行手段と、
前記実行手段により第１のプログラムが実行されることにより蓄積されるデータを、前記第１のプログラムのバージョン番号と共に保持する保持手段と、
前記保持手段により前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、
前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持手段により保持されているデータを維持し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持手段により保持されているデータを、前記格納媒体に格納された他のデータに更新する更新手段と
を備えることを特徴とするロボット制御装置のロボット制御方法において、
前記実行手段における、前記ロボットに所定の動作を実行させるプログラムを実行する実行ステップと、
前記保持手段における、前記実行ステップの処理で第１のプログラムが実行されることにより蓄積されるデータを、前記第１のプログラムのバージョン番号と共に保持する保持ステップと、
前記比較手段における、前記保持ステップの処理で前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較ステップと、
前記更新手段における、前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較ステップの処理での比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持ステップの処理で保持されているデータを維持し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較ステップの処理での比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持ステップの処理により保持されているデータを、前記格納媒体に格納された他のデータに更新する更新ステップとを含み、
前記更新ステップの処理は、前記保持ステップの処理により保持されているデータを維持するとき、前記保持ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、前記格納媒体により格納可能なデータ数分の保持領域に更新し、前記保持ステップの処理により保持されているデータを、前記第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、前記フラグを前記データを更新するように示す状態に設定する
ことを特徴とするロボット制御方法。
【請求項３】
ロボットに所定の動作を実行させるプログラムを実行する実行手段と、
前記実行手段により第１のプログラムが実行されることにより蓄積されるデータを、前記第１のプログラムのバージョン番号と共に保持する保持手段と、
前記保持手段により前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、
前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持手段により保持されているデータを維持し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持手段により保持されているデータを、前記格納媒体に格納された他のデータに更新する更新手段と
を備えることを特徴とするロボット制御装置を制御するプログラムであって、
前記実行手段における、前記ロボットに所定の動作を実行させるプログラムの実行を制御する実行制御ステップと、
前記保持手段における、前記実行制御ステップの処理で第１のプログラムの実行が制御されることにより蓄積されるデータと、前記第１のプログラムのバージョン番号との保持を制御する保持制御ステップと、
前記比較手段における、前記保持制御ステップの処理で前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号との比較を制御する比較制御ステップと、
前記更新手段における、前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較制御ステップの処理での比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持制御ステップの処理で保持が制御されているデータの維持を制御し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較制御ステップでの比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持制御ステップの処理により保持されているデータの、前記格納媒体に格納された他のデータへの更新を制御する更新制御ステップとを含み、
前記更新制御ステップの処理は、前記保持制御ステップの処理により保持されているデータを維持するとき、前記保持制御ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、前記格納媒体により格納可能なデータ数分の保持領域に更新し、前記保持制御ステップの処理により保持されているデータを、前記第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、前記フラグを前記データを更新するように示す状態に設定する
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項４】
ロボットに所定の動作を実行させるプログラムを実行する実行手段と、
前記実行手段により第１のプログラムが実行されることにより蓄積されるデータを、前記第１のプログラムのバージョン番号と共に保持する保持手段と、
前記保持手段により前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、
前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持手段により保持されているデータを維持し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較手段の比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持手段により保持されているデータを、前記格納媒体に格納された他のデータに更新する更新手段と
を備えることを特徴とするロボット制御装置を制御するコンピュータに、
前記実行手段における、前記ロボットに所定の動作を実行させるプログラムの実行を制御する実行制御ステップと、
前記保持手段における、前記実行制御ステップの処理で第１のプログラムの実行が制御されることにより蓄積されるデータと、前記第１のプログラムのバージョン番号との保持を制御する保持制御ステップと、
前記比較手段における、前記保持制御ステップの処理で前記データと共に保持されている前記第１のプログラムのバージョン番号と、前記データを更新するか否かを示すフラグおよび前記データとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号との比較を制御する比較制御ステップと、
前記更新手段における、前記フラグの状態が、前記データを更新しないように示す状態である場合、前記比較制御ステップの処理での比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さいとき、前記保持制御ステップの処理で保持が制御されているデータの維持を制御し、前記フラグの状態が、前記データを更新するように示す状態である場合、または前記比較制御ステップでの比較結果が、前記第１のプログラムのバージョン番号が前記第２のプログラムのバージョン番号よりも小さくないとき、前記保持制御ステップの処理により保持されているデータの、前記格納媒体に格納された他のデータへの更新を制御する更新制御ステップとを含む処理を実行させ、
前記更新制御ステップの処理は、前記保持制御ステップの処理により保持されているデータを維持するとき、前記保持制御ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、前記格納媒体により格納可能なデータ数分の保持領域に更新し、前記保持制御ステップの処理により保持されているデータを、前記第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、前記フラグを前記データを更新するように示す状態に設定する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置および方法、記録媒体、並びにプログラムに関し、特に、ロボットが学習プログラムによって学習した内容を、学習プログラムを更新する際に、継承できるようにしたロボット制御装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
近年においては、例えば、玩具等として、外部の状態を認識し、その認識結果に基づいて、ある仕草をしたりするロボット（本明細書においては、ぬいぐるみ状のものを含む）が製品化されている。
【０００３】
このロボットには、外部情報を認識させ、認識することにより得られる認識結果に基づいて行動することにより、所定のしぐさを行ったり、外部情報に基づいて所定の情報を学習するものがある。
【０００４】
例えば、ユーザに名前を呼びかけてもらうと、呼びかけられた名前を、自らの名前として認識するロボットが開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００２−３１０９８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ロボットにインストールされたプログラムは、必要に応じて新たな機能が付加されたプログラムを上書きインストールすることにより、いわゆる、バージョンアップを図ることが可能である。
【０００６】
しかしながら、上述の構成では、新たな機能を備えた新しいプログラムを上書きしてインストールすることにより、それまでの学習により得られた学習情報をも上書きされてしまうため、それまでの学習情報が全て失われてしまい、結果として、古いバージョンのプログラムにより学習させてきた内容を、新しいバージョンのプログラムで最初から学習させ直さなければならないという課題があった。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、特に、ロボットが学習によって取得した学習情報を継承しつつ、学習に用いられたプログラムのバージョンアップを可能にするものである。
【課題を解決するための手段】
【０００８】
本発明のロボット制御装置は、ロボットに所定の動作を実行させるプログラムを実行する実行手段と、実行手段により第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持手段と、保持手段によりデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段とを備え、更新手段は、保持手段により保持されているデータを維持するとき、保持手段により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持手段に保持されているデータを、第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
【００１０】
本発明のロボット制御方法は、ロボットに所定の動作を実行させるプログラムを実行する実行手段と、実行手段により第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持手段と、保持手段によりデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段とを備えることを特徴とするロボット制御装置のロボット制御方法において、実行手段における、ロボットに所定の動作を実行させるプログラムを実行する実行ステップと、保持手段における、実行ステップの処理で第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持ステップと、比較手段における、保持ステップの処理でデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較ステップと、更新手段における、フラグの状態が、データを更新しないように示す状態である場合、比較ステップの処理での比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持ステップの処理で保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較ステップの処理での比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持ステップの処理により保持されているデータを、格納媒体に格納された他のデータに更新する更新ステップとを含み、更新ステップの処理は、保持ステップの処理により保持されているデータを維持するとき、保持ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持ステップの処理により保持されているデータを、第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
【００１１】
本発明の記録媒体のプログラムは、ロボットに所定の動作を実行させるプログラムを実行する実行手段と、実行手段により第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持手段と、保持手段によりデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段とを備えることを特徴とするロボット制御装置を制御するプログラムであって、実行手段における、ロボットに所定の動作を実行させるプログラムの実行を制御する実行制御ステップと、保持手段における、実行制御ステップの処理で第１のプログラムの実行が制御されることにより蓄積されるデータと、第１のプログラムのバージョン番号との保持を制御する保持制御ステップと、比較手段における、保持制御ステップの処理でデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号との比較を制御する比較制御ステップと、更新手段における、フラグの状態が、データを更新しないように示す状態である場合、比較制御ステップの処理での比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持制御ステップの処理で保持が制御されているデータの維持を制御し、フラグの状態が、データを更新するように示す状態である場合、または比較制御ステップでの比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持制御ステップの処理により保持されているデータの、格納媒体に格納された他のデータへの更新を制御する更新制御ステップとを含み、更新制御ステップの処理は、保持制御ステップの処理により保持されているデータを維持するとき、保持制御ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持制御ステップの処理により保持されているデータを、第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
【００１２】
本発明のプログラムは、ロボットに所定の動作を実行させるプログラムを実行する実行手段と、実行手段により第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持手段と、保持手段によりデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段とを備えることを特徴とするロボット制御装置を制御するコンピュータに、実行手段における、ロボットに所定の動作を実行させるプログラムの実行を制御する実行制御ステップと、保持手段における、実行制御ステップの処理で第１のプログラムの実行が制御されることにより蓄積されるデータと、第１のプログラムのバージョン番号との保持を制御する保持制御ステップと、比較手段における、保持制御ステップの処理でデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号との比較を制御する比較制御ステップと、更新手段における、フラグの状態が、データを更新しないように示す状態である場合、比較制御ステップの処理での比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持制御ステップの処理で保持が制御されているデータの維持を制御し、フラグの状態が、データを更新するように示す状態である場合、または比較制御ステップでの比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持制御ステップの処理により保持されているデータの、格納媒体に格納された他のデータへの更新を制御する更新制御ステップとを含む処理を実行させ、更新制御ステップの処理は、保持制御ステップの処理により保持されているデータを維持するとき、保持制御ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持制御ステップの処理により保持されているデータを、第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
【００１３】
本発明のロボット制御装置および方法、並びにプログラムにおいては、ロボットに所定の動作を実行させるプログラムが実行され、第１のプログラムが実行されることにより蓄積されるデータが、第１のプログラムのバージョン番号と共に保持され、データと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とが比較され、フラグの状態が、データを更新しないように示す状態である場合、比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持されているデータが維持され、フラグの状態が、データを更新するように示す状態である場合、または比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持されているデータが、格納媒体に格納された他のデータに更新され、保持されているデータが維持されるとき、保持可能なデータ数分だけ確保されている保持領域が、格納媒体により格納可能なデータ数分の保持領域に更新され、保持されているデータが、第２のプログラムのバージョン番号と共に更新された保持領域に保持され、フラグがデータを更新するように示す状態に設定される。
【００１４】
本発明のロボット制御装置は、独立した装置であっても良いし、ロボット制御を行うブロックであっても良い。
【発明の効果】
【００１５】
本発明によれば、ロボットが学習プログラムによって学習した学習情報を、学習プログラムを更新する際に、継承させるようにすることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００１７】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００１８】
即ち、本発明のロボット制御装置は、ロボットに所定の動作を実行させるプログラムを実行する実行手段（例えば、図３の行動決定機構部５２）と、実行手段により第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持手段（例えば、図３のモデル記憶部５１）と、保持手段によりデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段（例えば、図３の比較部５５ａ）と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段（例えば、図３の継承管理部５５）とを備え、更新手段は、保持手段により保持されているデータを維持するとき、保持手段により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持手段に保持されているデータを、第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
【００１９】
本発明のロボット制御方法は、ロボットに所定の動作を実行させるプログラムを実行する実行手段と、実行手段により第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持手段と、保持手段によりデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較手段と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段とを備えることを特徴とするロボット制御装置のロボット制御方法において、実行手段における、ロボットに所定の動作を実行させるプログラムを実行する実行ステップと、保持手段における、実行ステップの処理で第１のプログラムが実行されることにより蓄積されるデータを、第１のプログラムのバージョン番号と共に保持する保持ステップ（例えば、図８のフローチャートのステップＳ３６の処理）と、比較手段における、保持ステップの処理でデータと共に保持されている第１のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第２のプログラムのバージョン番号とを比較する比較ステップ（例えば、図６のフローチャートのステップＳ１５の処理）と、更新手段における、フラグの状態が、データを更新しないように示す状態である場合、比較ステップの処理での比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さいとき、保持ステップの処理で保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較制御ステップでの比較結果が、第１のプログラムのバージョン番号が第２のプログラムのバージョン番号よりも小さくないとき、保持制御ステップの処理により保持されているデータを、格納媒体に格納された他のデータに更新する更新ステップ（例えば、図６のフローチャートのステップＳ１４の処理）とを含み、更新ステップの処理は、保持ステップの処理により保持されているデータを維持するとき、保持ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持制御ステップの処理により保持されているデータを、第２のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
【００２０】
尚、記録媒体、および、プログラムに係る発明については、ロボット制御方法と同様であるので省略する。
【００２１】
図１は、本発明を適用したロボット１の一実施の形態の外観構成例を示しており、図２は、その電気的構成例を示している。
【００２２】
本実施の形態では、ロボット１は、例えば、犬等の四つ足の動物の形状のものとなっており、胴体部ユニット２の前後左右に、それぞれ脚部ユニット３Ａ，３Ｂ，３Ｃ，３Ｄが連結されるとともに、胴体部ユニット２の前端部と後端部に、それぞれ頭部ユニット４と尻尾部ユニット５が連結されることにより構成されている。
【００２３】
尻尾部ユニット５は、胴体部ユニット２の上面に設けられたベース部５Ｂから、２自由度をもって湾曲または揺動自在に引き出されている。
【００２４】
胴体部ユニット２には、ロボット１全体の制御を行うコントローラ１０、ロボット１の動力源となるバッテリ１１、並びにバッテリセンサ１２および熱センサ１３からなる内部センサ部１４などが収納されている。
【００２５】
頭部ユニット４には、「耳」に相当するマイク（マイクロフォン）１５、「目」に相当するＣＣＤ(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のうちの必要なものを駆動させる。これにより、頭部ユニット４を上下左右に振らせたり、下顎部４Ａを開閉させる。さらには、尻尾部ユニット５を動かせたり、各脚部ユニット３Ａ乃至３Ｄを駆動して、ロボット１を歩行させるなどの行動を行わせる。
【００３３】
また、コントローラ１０は、必要に応じて、合成音を生成し、スピーカ１８に供給して出力させたり、ロボット１の「目」の位置に設けられたＬＥＤ１９を点灯、消灯または点滅させる。
【００３４】
以上のようにして、ロボット１は、周囲の状況等に基づいて自律的に行動をとるようになっている。
【００３５】
次に、図３は、図２のコントローラ１０の機能的構成例を示している。なお、図３に示す機能的構成は、ＣＰＵ１０Ａが、メモリ１０Ｂに記憶された制御プログラムを実行することで実現されるようになっている。
【００３６】
センサ入力処理部５０は、マイク１５や、ＣＣＤカメラ１６、タッチセンサ１７等から与えられる音声信号、画像信号、圧力検出信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部５１および行動決定機構部５２に通知する。
【００３７】
即ち、センサ入力処理部５０は、音声認識部５０Ａを有しており、音声認識部５０Ａは、マイク１５から与えられる音声信号について音声認識を行う。そして、音声認識部５０Ａは、その音声認識結果としての、例えば、「歩け」、「伏せ」、「ボールを追いかけろ」等の指令を、状態認識情報として、モデル記憶部５１および行動決定機構部５２に通知する。
【００３８】
また、センサ入力処理部５０は、画像認識部５０Ｂを有しており、画像認識部５０Ｂは、ＣＣＤカメラ１６から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部５０Ｂは、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部５１および行動決定機構部５２に通知する。
【００３９】
さらに、センサ入力処理部５０は、圧力処理部５０Ｃを有しており、圧力処理部５０Ｃは、タッチセンサ１７から与えられる圧力検出信号を処理する。そして、圧力処理部５０Ｃは、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「頭が触られた」と認識して、その認識結果を、状態認識情報として、モデル記憶部５１および行動決定機構部５２に通知する。
【００４０】
モデル記憶部５１は、ロボット１の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶、管理している。
【００４１】
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部５０からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００４２】
本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部５０からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００４３】
成長モデルは、例えば、図４に示すようなオートマトンで構成される。このオートマトンでは、成長状態は、ノード（状態）ＮＯＤＥ0乃至ＮＯＤＥGで表現され、成長、つまり成長状態の遷移は、ある成長状態に対応するノードＮＯＤＥgから、次の成長状態に対応するノードＮＯＤＥg+1への遷移を表すアークＡＲＣg+1で表現される（ｇ＝０，１，・・・，Ｇ−１）。
【００４４】
ここで、本実施の形態では、成長の状態は、図４において、左のノードから右方向のノードに遷移していくようになっている。従って、図４において、例えば、最も左のノードＮＯＤＥ0は、生まれたばかりの「新生児」の状態を表し、左から２番目のノードＮＯＤＥ1は、「幼児」の状態を表し、左から３番目のノードＮＯＤＥ2は「児童」の状態を表す。以下、同様にして、右方向のノードほど、より成長した状態を表し、最も右のノードＮＯＤＥGは、「高齢」の状態を表す。
【００４５】
そして、あるノードＮＯＤＥgから、右隣のノードＮＯＤＥg+1への遷移を表すアークＡＲＣg+1には、その遷移が生じるための条件（入力）Ｐtg+1が設定されており、ノードの遷移（成長）は、この条件に基づいて決定される。即ち、アークＡＲＣg+1においては、その遷移が生じるために要求される、ＣＣＤカメラ１６や、マイク９、タッチセンサ１７からの出力、時間経過等についての条件Ｐtg+1が設定されており、その条件Ｐtg+1が満たされた場合に、ノードＮＯＤＥgから右隣のノードＮＯＤＥg+1への遷移が生じ、ロボット１が成長する。
【００４６】
モデル記憶部５１は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部５２に送出する。
【００４７】
なお、モデル記憶部５１には、センサ入力処理部５０から状態認識情報が供給される他、行動決定機構部５２から、ロボット１の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、同一の状態認識情報が与えられても、行動情報が示すロボット１の行動に応じて、異なる状態情報（感情モデル、本能モデル、および成長モデルの値で表される感情、本能、および成長の状態）を生成するようになっている。
【００４８】
行動決定機構部５２は、センサ入力処理部５０からの状態認識情報や、モデル記憶部５１からの状態情報、時間経過等に基づいて、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部５３に送出する。
【００４９】
即ち、行動決定機構部５２は、ロボット１がとり得る行動をステート（状態）(state)に対応させた有限オートマトンを、ロボット１の行動を規定する行動モデルとして管理しており、この行動モデルとしての有限オートマトンにおけるステートを、センサ入力処理部５０からの状態認識情報や、モデル記憶部５１における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
【００５０】
ここで、行動決定機構部５２は、所定のトリガ(trigger)があったことを検出すると、ステートを遷移させる。即ち、行動決定機構部５２は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部５１から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
【００５１】
なお、行動決定機構部５２は、上述したように、センサ入力処理部５０からの状態認識情報だけでなく、モデル記憶部５１における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値（状態情報）によっては、ステートの遷移先は異なるものとなる。
【００５２】
その結果、行動決定機構部５２は、例えば、状態情報が、「怒っていない」こと、および「お腹がすいていない」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、目の前に手のひらが差し出されたことに応じて、「お手」という行動をとらせる行動指令情報を生成し、これを、姿勢遷移機構部５３に送出する。
【００５３】
また、行動決定機構部５２は、例えば、状態情報が、「怒っていない」こと、および「お腹がすいている」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、目の前に手のひらが差し出されたことに応じて、「手のひらをぺろぺろなめる」ような行動を行わせるための行動指令情報を生成し、これを、姿勢遷移機構部５３に送出する。
【００５４】
また、行動決定機構部５２は、例えば、状態情報が、「怒っている」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、状態情報が、「お腹がすいている」ことを表していても、また、「お腹がすいていない」ことを表していても、「ぷいと横を向く」ような行動を行わせるための行動指令情報を生成し、これを、姿勢遷移機構部５３に送出する。
【００５５】
なお、行動決定機構部５２には、モデル記憶部５１から供給される状態情報が示す感情や、本能、成長の状態に基づいて、遷移先のステートに対応する行動のパラメータとしての、例えば、歩行の速度や、手足を動かす際の動きの大きさおよび速度などを決定させることができ、この場合、それらのパラメータを含む行動指令情報が、姿勢遷移機構部５３に送出される。
【００５６】
姿勢遷移機構部５３は、行動決定機構部５２から供給される行動指令情報に基づいて、ロボット１の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これを制御機構部５４に送出する。
【００５７】
ここで、現在の姿勢から次に遷移可能な姿勢は、例えば、胴体や手や足の形状、重さ、各部の結合状態のようなロボット１の物理的形状と、関節が曲がる方向や角度のようなアクチュエータ３ＡＡ1乃至５Ａ1および５Ａ2の機構とによって決定される。
【００５８】
また、次の姿勢としては、現在の姿勢から直接遷移可能な姿勢と、直接には遷移できない姿勢とがある。例えば、４本足のロボット１は、手足を大きく投げ出して寝転んでいる状態から、伏せた状態へ直接遷移することはできるが、立った状態へ直接遷移することはできず、一旦、手足を胴体近くに引き寄せて伏せた姿勢になり、それから立ち上がるという２段階の動作が必要である。また、安全に実行できない姿勢も存在する。例えば、４本足のロボット１は、その４本足で立っている姿勢から、両前足を挙げてバンザイをしようとすると、簡単に転倒してしまう。
【００５９】
このため、姿勢遷移機構部５３は、直接遷移可能な姿勢をあらかじめ登録しておき、行動決定機構部５２から供給される行動指令情報が、直接遷移可能な姿勢を示す場合には、その行動指令情報を、そのまま姿勢遷移情報として、制御機構部５４に送出する。一方、行動指令情報が、直接遷移不可能な姿勢を示す場合には、姿勢遷移機構部５３は、遷移可能な他の姿勢に一旦遷移した後に、目的の姿勢まで遷移させるような姿勢遷移情報を生成し、制御機構部５４に送出する。これによりロボット１が、遷移不可能な姿勢を無理に実行しようとする事態や、転倒するような事態を回避することができるようになっている。
【００６０】
制御機構部５４は、姿勢遷移機構部５３からの姿勢遷移情報にしたがって、アクチュエータ３ＡＡ1乃至５Ａ1および５Ａ2を駆動するための制御信号を生成し、これを、アクチュエータ３ＡＡ1乃至５Ａ1および５Ａ2に送出する。これにより、アクチュエータ３ＡＡ1乃至５Ａ1および５Ａ2は、制御信号にしたがって駆動し、ロボット１は、自律的に行動を起こす。
【００６１】
継承管理部５５は、終了時（ロボット１の電源がオフにされるとき）には、モデル記憶部５１に記憶されている感情モデル、本能モデル、成長モデルの情報をドライブ３０に接続された磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４に書込むとともに、内蔵メモリ１０Ｃに書き込む。
【００６２】
また、継承管理部５５は、起動時（ロボット１の電源がオンにされるとき）には、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４から読み出すか、または、内蔵メモリ１０Ｃに記憶されている感情モデル、本能モデル、成長モデルを読み出して、モデル記憶部５１に記憶させる。
【００６３】
より詳細には、コントローラ１０のセンサ入力部５０乃至制御機構部５４は、ドライブ３０に接続された磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４に記憶されているプログラムであり、起動時に読み出されて、メモリ１０Ｂにロードされて実行される。従って、このセンサ入力部５０乃至制御機構部５４を実現するプログラムは、更新することが可能である。
【００６４】
このプログラムの更新の程度は、バージョン番号によって管理されており、各プログラムには、バージョン番号が付されている。また、モデル記憶部５１に記憶されている感情モデル、本能モデル、および成長モデルの情報には、その情報が生成されたときに使用されたプログラムのバージョン番号が付されている。
【００６５】
通常、このプログラムが起動される際、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４からプログラムと感情モデル、本能モデル、および成長モデルが読み出されるように動作する。このような構成とすることで、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４を差し替えることで、他のロボット１でも、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４が装着されていたロボット１の感情モデル、本能モデル、および成長モデルの情報をそのまま使用することが可能となる。
【００６６】
しかしながら、例えば、このプログラムが更新される場合、すなわち、いわゆるバージョンアップされるような場合、プログラムは、一般に、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４で配布されることになるため、新しいバージョン番号のプログラムは記憶されているが、それまでに蓄積されたロボット１の感情モデル、本能モデル、および成長モデルの情報は、記録されていない。そこで、継承管理部５５の比較部５５ａは、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４に記録されたプログラムのバージョン番号と、内蔵メモリ１０Ｃに記憶されている感情モデル、本能モデル、および成長モデルの情報のバージョン番号とを比較する。そして、継承管理部５５は、その比較結果に基づいて、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４に記録された感情モデル、本能モデル、および成長モデルの情報か、または、内蔵メモリ１０Ｃに記憶されている感情モデル、本能モデル、および成長モデルの情報のいずれかをモデル記憶部５１に展開させる。
【００６７】
結果として、それまでのバージョン番号の古いプログラムを用いて、蓄積されてきた感情モデル、本能モデル、および成長モデルの情報を新しいバージョン番号のプログラムに継承させることが可能となる。
【００６８】
次に、図５のフローチャートを参照して、継承管理部５５による起動処理について説明する。尚、以降においては、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、または半導体メモリ３４は、脱着型メモリ３５と総称する。また、感情モデル、本能モデル、および成長モデルの情報は、図３で示される機能による繰り返し動作によって、学習されていく情報であるとも言えるので、以降においては、学習情報と総称する。
【００６９】
ステップＳ１１において、継承管理部５５は、ドライブ３０に問い合わせて、図３で示したような機能を実現させるプログラムが記録された脱着型メモリ３５が接続されたか否かを判定し、接続されたと判定されるまで、その処理を繰り返す。例えば、脱着型メモリ３５が接続された場合、その処理は、ステップＳ１２に進む。
【００７０】
ステップＳ１２において、継承管理部５５は、接続された脱着型メモリ３５に付された継承フラグを確認する。ここで、継承フラグ１１３（図６）とは、予め脱着型メモリ３５に記憶された学習情報をモデル記憶部５１に展開させるか、または、メモリ１０Ｃに記憶された学習情報をモデル記憶部５１に展開させるかを指定するフラグであり、脱着型メモリ３５に記録されている情報である。
【００７１】
継承フラグ１１３がオンのとき、内蔵メモリ１０Ｃに記憶された学習情報をメモリ１０Ｂ（モデル記憶部５１の機能を有する領域）に展開させることが指定され、継承フラグ１１３がオフのとき、脱着型メモリ３５に記憶された学習情報をメモリ１０Ｂ（モデル記憶部５１の機能を有する領域）に展開させることが指定されている。また、基本的には、脱着型メモリ３５にプログラムのみが記録され、学習情報が記録されていない場合（プログラムのみが記録された脱着型メモリ３５の出荷時の状態の場合）、継承フラグはオンに設定され、それ以外の場合、すなわち、一度でも学習情報が記録された後の場合、継承フラグはオフに設定される。
【００７２】
ステップＳ１３において、継承管理部５５は、ドライブ３０に装着された脱着型メモリ３５に記録されている継承フラグ１１３がオンであるか否かを判定する。例えば、図６で示されるように、学習情報が記録されていない脱着型メモリ３５（未使用の脱着型メモリ３５）が、内蔵メモリ１０Ｃに学習情報が記録されていないロボット１に装着された場合、継承フラグ１１３は、オンにされているので、その処理は、ステップＳ１５に進む。
【００７３】
ここで、図６の左部の上下に示されているドライブ３０に装着される前の脱着型メモリ３５と、そのときの内蔵メモリ１０Ｃについて説明する。図６の左上部の脱着型メモリ３５は、ロボット１のドライブ３０に装着される前の脱着型メモリ３５の状態を示している。脱着型メモリ３５には、データファイルリスト１１１が設けられており、格納可能なファイル数とそのリストが記録されており、今の場合、１乃至４までが記録されており、４個のファイルまでが学習情報として記録できることが示されている（図中では、脱着型メモリ３５の外側に記載されているが、情報は、脱着型メモリ３５の中に記録されている）。図６の脱着型メモリ３５の右上には、格納されているデータを書き込んだプログラムのバージョンを示すバージョン番号１１２が示されており、今の場合、「１」と記録されており、バージョン番号１のプログラムにより記録される学習情報であることが示されている。さらに、今の場合、脱着型メモリ３５は、プログラムのみが記録され、学習情報が記録されていない状態であるので、継承フラグ１１３がオンにされている。さらに、データファイルリスト１１１に対応する個数のデータ１２１乃至１２４が記されているが、格納する領域が確保されているのみでデータそのものは格納されていない。尚、点線で示されているデータについては、領域のみが確保されているのみで、実際にデータが記録されていないことを示し、実線で示されているデータは、実際のデータが格納されていることを示している。尚、図示していないが、脱着型メモリ３５は、図３で示されている機能を実現させるプログラムも記録している。
【００７４】
一方、左下部には、内蔵メモリ１０Ｃが示されており、今の場合、内蔵メモリ１０Ｃには、学習情報が記録されておらず、また、脱着型メモリ３５とも異なりプログラムも記録されていないので、バージョン番号１３２やファイルデータリスト１３１にも情報が記録されていない。
【００７５】
ここで、図５のフローチャートの説明に戻る。
【００７６】
ステップＳ１４において、継承管理部５５は、内蔵メモリ１０Ｃにデータが記録されているか否かを判定する。図６の場合、内蔵メモリ１０Ｃには、データが何も記録されていないので、内蔵メモリ１０Ｃにデータが記録されていないと判定され、その処理は、ステップＳ１８に進む。
【００７７】
ステップＳ１８において、継承管理部５５は、脱着型メモリ３５に記録されているデータを読み出し、メモリ１０Ｂのモデル記憶部５１の領域に上書きして更新し、処理を終了する。すなわち、今の場合、内蔵メモリ１０Ｃには、データが記録されていない（データを書き込む領域も確保されていない）ので、脱着型メモリ３５の情報がそのままモデル記憶部５１に書き込まれることになる。図６の場合、図中中央左部のモデル記憶部５１には、脱着型メモリ３５のデータ１２１乃至１２４が上書きされて、データ１５１乃至１５４として記録されている。
【００７８】
以上のような処理により、メモリ１０Ｂのモデル記憶部５１の領域には、データ１５１乃至１５４に、図３で示される機能により、学習情報が記録される。例えば、図６で示されるように、データ１５１，１５３に学習情報が記録された場合、図６中央右部のメモリ１０Ｂ’で示されるように、データ１５１’，１５３’が上書きされる。また、図中各右上部には、データを記録したプログラムのバージョン番号が記録されており、今の場合、「１」であり、データ１５１’，１５３’は、バージョン番号１のプログラムにより記録されていることが示されている。尚、図中の「update」は、更新、または、上書きがあったことを示す。
【００７９】
ここで、図７のフローチャートを参照して、終了処理について説明する。
【００８０】
ステップＳ３１において、継承管理部５５は、操作の終了が指示されたか否かを判定し、操作の終了が指示されるまでその処理を繰り返し、例えば、図示せぬ電源スイッチが操作されて、操作の終了が指示された場合、その処理は、ステップＳ３２に進む。
【００８１】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図６の場合、データファイルリスト１１１は、１乃至４であるのに対して、データファイルリスト１３１は、何も記録されていないので、一致していないと判定され、その処理は、ステップＳ３４に進む。
【００８２】
ステップＳ３４において、継承管理部５５は、内蔵メモリ１０Ｃのデータファイルリストを脱着型メモリ３５に合わせて更新する。すなわち、図６の場合、データファイルリスト１１１は、１乃至４であるので、データファイルリスト１３１を更新して１乃至４としてデータファイルリスト１３１’とする。すなわち、この段階で、データ１４１乃至１４４が実際のデータは存在しないが、データ領域として確保される。
【００８３】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’，１５２，１５３’，１５４を内蔵メモリ１０Ｃおよび脱着型メモリ３５にそれぞれデータ１２１’，１２２，１２３’，１２４およびデータ１４１’，１４２，１４３’，１４４として記録する。
【００８４】
ステップＳ３６において、継承管理部５５は、脱着型メモリ３５にアクセスし、継承フラグ１１３をオフに設定し、その処理は終了する。
【００８５】
以上の処理により、始めて使用する脱着型メモリ３５を用いて、始めてロボット１を使用することにより、脱着型メモリ３５には、学習情報が蓄積されると共に、継承フラグ１１３がオフにされ、ロボット１の内蔵メモリ１０Ｃにも、脱着型メモリ３５にも、同じ学習情報が記録される。尚、図６以降においては、「’」が付されていない符号が付けられたものは起動時の状態を示すものであり、「’」が付された符号が付けられたものは終了時の状態を示すものである。
【００８６】
ここで、図５のフローチャートに戻る。尚、以降において、上述した処理と同様の処理については、適宜説明を省略する。すなわち、例えば、図８で示されるように、始めて使用する脱着型メモリ３５を用いて、内蔵メモリ１０Ｃにデータ１４１乃至１４４が記憶されている場合（データ１４１，１４４は、バージョン１のプログラムにより記録されたデータであることが示されている）で、かつ、バージョン番号１１２，１３２が何れも同じ１である場合、ステップＳ１４において、内蔵メモリ１０Ｃにはデータがあると判定されるので、その処理は、ステップＳ１５に進む。
【００８７】
さらに、ステップＳ１５において、継承管理部５５の比較部５５ａは、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいか否かを判定する。図８の場合、ステップＳ１５において、継承管理部５５の比較部５５ａは、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいか否かを判定する。図８の場合、脱着型メモリ３５のデータのバージョン番号１１２および内蔵メモリ１０Ｃに記録されているデータのバージョン番号は、いずれも１であり、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さくないので、その処理は、ステップＳ１８に進む。
【００８８】
結果として、図８の中央左部で示されるように、脱着型メモリ３５のデータ１２１乃至１２４が、メモリ１０Ｂのモデル記憶部５１の領域に展開されて、データ１５１乃至１５４として記録される。
【００８９】
以上のような処理により、メモリ１０Ｂは、データ１５１乃至１５４に、図３で示される機能により、学習情報が記録される。例えば、図８で示されるように、データ１５１，１５３，１５４に学習情報が記録された場合、図８中央右部のメモリ１０Ｂ’で示されるように、データ１５１’，１５３’，１５４’が上書きされる。また、今の場合、データ１５１’，１５３’，１５４’は、バージョン番号１のプログラムにより記録されていることが示されている。
【００９０】
ここで、図７のフローチャートを参照して、終了処理について説明する。尚、以降において、上述した主降りと同様の処理については適宜説明を省略する。
【００９１】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図８の場合、データファイルリスト１１１，１３１は、いずれも１乃至４であるので、一致していると判定されるので、ステップＳ３４の処理がスキップされて、その処理は、ステップＳ３５に進む。
【００９２】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’，１５２，１５３’，１５４’を内蔵メモリ１０Ｃ’および脱着型メモリ３５’にそれぞれデータ１２１’，１２２，１２３’，１２４’およびデータ１４１’，１４２，１４３’，１４４’として記録する。
【００９３】
以上のように、脱着型メモリ３５のバージョン番号と内部メモリ１０Ｃのバージョン番号が一致する場合、脱着型メモリ３５のデータが使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ３５’と内部メモリ１０Ｃ’に記録される。結果として、内部メモリ１０Ｃに記憶されていた学習情報は継承されないことになる。しかしながら、これは、第１のユーザの脱着型メモリ３５により蓄積された内部メモリ１０Ｃに記憶されていた学習情報が、同じバージョン番号のプログラムが記録された第２のユーザの脱着型メモリ３５がドライブ３０に接続された場合にでもメモリ１０Ｂに読み込まれて実行されてしまうと、第２のユーザの脱着型メモリ３５により学習情報が盗まれたり、破壊されたりする恐れがあるため、メモリ１０Ｂに記憶された学習情報は、継承されないようになされている。
【００９４】
また、例えば、図９で示されるように、データファイルリスト１１１が１乃至５であって、始めて使用する脱着型メモリ３５を用いて、内蔵メモリ１０Ｃにデータ１４１乃至１４４が記憶されている場合（データ１４１，１４４は、バージョン１のプログラムにより記録されたデータであることが示されている）で、バージョン番号１１２が１であり、バージョン番号１３２が２であるとき、ステップＳ１４において、内蔵メモリ１０Ｃにはデータがあると判定されるので、その処理は、ステップＳ１５に進む。
【００９５】
さらに、ステップＳ１５において、継承管理部５５の比較部５５ａは、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいか否かを判定する。図９の場合、ステップＳ１５において、継承管理部５５の比較部５５ａは、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいか否かを判定する。図９の場合、脱着型メモリ３５のデータのバージョン番号１１２が２であり、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が１であるため、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいと判定されるので、その処理は、ステップＳ１６に進む。
【００９６】
ステップＳ１６において、継承管理部５５は、メモリ１０Ｂのデータファイルリスト１１１に応じたデータの個数を設定する。すなわち、今の場合、継承管理部５５は、データ１５１乃至１５５を設定する。尚、この処理においては、データ１５１乃至１５５は領域が確保されるのみであって、データそのものは記録されていない。
【００９７】
ステップＳ１７において、継承管理部５５は、内蔵メモリ１０Ｃに記憶されている学習情報を読出し、メモリ１０Ｂのモデル記憶部５１の領域に展開する。図９の場合、内部メモリ１０Ｃにおいては、学習情報としてデータ１４１乃至１４４が記録されており、バージョン番号１のプログラムによる学習情報がデータ１４１，１４４として記録されているため、結果として、ステップＳ１７の処理により、メモリ１０Ｂには、データ１５１乃至１５５が設定され、データ１５１，１５４に学習情報が上書きされた状態となる。
【００９８】
以上のような処理により、メモリ１０Ｂのモデル記憶部５１の領域には、データ１５１乃至１５５に、図３で示される機能により、学習情報が記録される。例えば、図９で示されるように、データ１５１，１５３，１５３に学習情報が記録された場合、図９中央右部のメモリ１０Ｂ’で示されるように、データ１５１’，１５３’乃至１５５’が上書きされる。また、今の場合、データ１５１’，１５３’乃至１５５’は、脱着型メモリ３５に記録されているバージョン番号２のプログラムにより記録されていることが示されている。
【００９９】
ここで、図７のフローチャートを参照して、終了処理について説明する。
【０１００】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図９の場合、データファイルリスト１１１は、１乃至５であり、データファイルリスト１３１は、１乃至４であるので、一致していないと判定されるので、その処理は、ステップＳ３４に進む。
【０１０１】
ステップＳ３４において、継承管理部５５は、内蔵メモリ１０Ｃのデータファイルリストを脱着型メモリ３５に合わせて更新する。すなわち、図９の場合、データファイルリスト１１１は、１乃至５であるので、データファイルリスト１３１を更新して１乃至５としてデータファイルリスト１３１’とする。
【０１０２】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’，１５２，１５３’乃至１５５’を内蔵メモリ１０Ｃ’および脱着型メモリ３５’にそれぞれデータ１２１’，１２２，１２３’乃至１２５’およびデータ１４１’，１４２，１４３’乃至１４５’として記録する。
【０１０３】
以上のように、脱着型メモリ３５のバージョン番号が内部メモリ１０Ｃのバージョン番号よりも大きい場合、内部メモリ１０Ｃの学習情報が継承され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ３５’と内部メモリ１０Ｃ’に記録される。結果として、内部メモリ１０Ｃに記憶されていた学習情報が継承さることになると共に、図３で示されたコントローラ１０を実現するプログラムのバージョンをアップさせることができる。従って、従来のようにプログラムがバージョンアップされることにより、それまでの学習情報が失われるといった問題が解消され、ユーザは、新たな機能を備えたプログラムによりさらに学習情報を蓄積させていくことが可能となる。
【０１０４】
さらに、例えば、図１０で示されるように、始めて使用する脱着型メモリ３５を用いて、内蔵メモリ１０Ｃにデータ１４１乃至１４５が記憶されている場合（データ１４１，１４４，１４５は、バージョン２のプログラムにより記録されたデータであることが示されている）で、かつ、バージョン番号１１２が１であり、バージョン番号１３２が２である場合、ステップＳ１４において、内蔵メモリ１０Ｃにはデータがあると判定されるので、その処理は、ステップＳ１５に進む。
【０１０５】
さらに、ステップＳ１５において、継承管理部５５の比較部５５ａは、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいか否かを判定する。図１０の場合、ステップＳ１５において、継承管理部５５の比較部５５ａは、内蔵メモリ１０Ｃに記録されているデータのバージョン番号が、脱着型メモリ３５のデータのバージョン番号よりも小さいか否かを判定する。図１０の場合、脱着型メモリ３５のデータのバージョン番号１１２が１であり、内蔵メモリ１０Ｃに記録されているデータのバージョン番号１３２が２であるので、同一ではないと判定され、その処理は、ステップＳ１８に進む。
【０１０６】
結果として、図１０の中央左部で示されるように、脱着型メモリ３５のデータ１２１乃至１２４が、メモリ１０Ｂに上書きされて、データ１５１乃至１５４として記録される。
【０１０７】
以上のような処理により、メモリ１０Ｂのモデル記憶部５１の領域は、データ１５１乃至１５４に、図３で示される機能により、学習情報が記録される。例えば、図１０で示されるように、データ１５１，１５３，１５３に学習情報が記録された場合、図１０中央右部のメモリ１０Ｂ’で示されるように、データ１５１’，１５３’が上書きされる。また、今の場合、データ１５１’，１５３’は、バージョン番号１のプログラムにより記録されていることが示されている。
【０１０８】
ここで、図７のフローチャートを参照して、終了処理について説明する。
【０１０９】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図１０の場合、データファイルリスト１１１は１乃至４であり、データファイルリスト１３１は、１乃至５であるので、一致していないと判定されるので、その処理は、ステップＳ３４に進む。
【０１１０】
ステップＳ３４において、継承管理部５５は、内蔵メモリ１０Ｃのデータファイルリストを脱着型メモリ３５に合わせて更新する。すなわち、図１０の場合、データファイルリスト１１１は、１乃至４であるので、データファイルリスト１３１を更新して１乃至４としてデータファイルリスト１３１’とする。
【０１１１】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’，１５２，１５３’，１５４を内蔵メモリ１０Ｃ’および脱着型メモリ３５’にそれぞれデータ１２１’，１２２，１２３’，１２４およびデータ１４１’，１４２，１４３’，１４４として記録する。
【０１１２】
以上のように、脱着型メモリ３５のバージョン番号が内部メモリ１０Ｃのバージョン番号よりも小さい場合、脱着型メモリ３５のデータ使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ３５’と内部メモリ１０Ｃ’に記録される。結果として、内部メモリ１０Ｃに記憶されていた学習情報は継承されず、さらに、それまでの学習情報は削除されることになる。すなわち、図１０の場合、脱着型メモリ３５に記録されたプログラムのバージョン番号は１であって、バージョン番号が２のプログラムにより蓄積された内蔵メモリ１０Ｃに記録されているデータは、バージョン番号１のプログラムでは使用することができない恐れがあるため、内部メモリ１０Ｃに蓄積された学習情報は削除されることになる。
【０１１３】
さらに、例えば、図１１で示されるように、学習情報が記録されたデータ１２１乃至１２４が記憶されている（データ１２１，１２２は、バージョン１のプログラムにより記録されたデータであることが示されている）脱着型メモリ３５を用いて、内蔵メモリ１０Ｃにデータ１４１乃至１４４が記憶されている場合（データ１４１，１４４は、バージョン１のプログラムにより記録されたデータであることが示されている）で、かつ、バージョン番号１１２，１３２がいずれも１である場合、ステップＳ１３において、学習情報が記録されているので、継承フラグ１１３は、オフにされており、オンではないと判定され、その処理は、ステップＳ１８に進む。
【０１１４】
結果として、図１１の中央左部で示されるように、脱着型メモリ３５のデータ１２１乃至１２４が、メモリ１０Ｂのモデル記憶部５１の領域に展開されて、データ１５１乃至１５４として記録される。
【０１１５】
以上のような処理により、メモリ１０Ｂのモデル記憶部５１の領域は、データ１５１乃至１５４に、図３で示される機能により、学習情報が記録される。例えば、図１１で示されるように、データ１５１，１５２に学習情報が記録された場合、図１１中央右部のメモリ１０Ｂ’で示されるように、データ１５１’乃至１５３’が上書きされる。また、今の場合、データ１５１’乃至１５３’は、バージョン番号１のプログラムにより記録されていることが示されている。
【０１１６】
ここで、図７のフローチャートを参照して、終了処理について説明する。
【０１１７】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図１１の場合、データファイルリスト１１１，１３１はいずれも１乃至４であるので、一致していると判定されるので、ステップＳ３４の処理はスキップされ、その処理は、ステップＳ３５に進む。
【０１１８】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’乃至１５３’，１５４を内蔵メモリ１０Ｃ’にデータ１２１’乃至１２３’，１２４を記録し、脱着型メモリ３５’にデータ１４１’乃至１４３’として記録すると共に、データ１４４に記録されていたデータを削除し、領域のみを確保した状態にする。
【０１１９】
以上のように、予め学習情報が記憶された脱着型メモリ３５のバージョン番号と内部メモリ１０Ｃのバージョン番号が同一である場合、結果的に、脱着型メモリ３５のデータ使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ３５’と内部メモリ１０Ｃ’に記録される。結果として、内部メモリ１０Ｃに記憶されていた学習情報は継承されないことになるが、ユーザは、脱着型メモリ３５をロボット１から取り出して、他のロボットに装着しても自らのロボット１と同様の学習情報を反映させることが可能となる。
【０１２０】
また、例えば、図１２で示されるように、学習情報が記録されたデータ１２１乃至１２５が記憶されている（データ１２１，１２２，１２５は、バージョン２のプログラムにより記録されたデータであることが示されている）脱着型メモリ３５を用いて、内蔵メモリ１０Ｃにデータ１４１乃至１４４が記憶されている場合（データ１４１，１４４は、バージョン１のプログラムにより記録されたデータであることが示されている）で、かつ、バージョン番号１１２が２であり，バージョン番号１３２が１である場合、学習情報が記録されているので、継承フラグ１１３は、オフにされているため、ステップＳ１３において、オンではないと判定され、その処理は、ステップＳ１８に進む。
【０１２１】
結果として、図１２の中央左部で示されるように、脱着型メモリ３５のデータ１２１乃至１２５が、メモリ１０Ｂのモデル記憶部５１の領域に展開されて、データ１５１乃至１５５として記録される。
【０１２２】
以上のような処理により、メモリ１０Ｂのモデル記憶部５１の領域は、データ１５１乃至１５５に、図３で示される機能により、学習情報が記録される。例えば、図１２で示されるように、データ１５１乃至１５３，１５５に学習情報が記録された場合、図１２中央右部のメモリ１０Ｂ’で示されるように、データ１５１’乃至１５３’，１５５’が上書きされる。また、今の場合、データ１５１’乃至１５３’ ，１５５’は、バージョン番号２のプログラムにより記録されていることが示されている。
【０１２３】
ここで、図７のフローチャートを参照して、終了処理について説明する。
【０１２４】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図１２の場合、データファイルリスト１１１は１乃至５であり，データファイルリスト１３１は１乃至４であるので、一致していないと判定されるので、その処理は、ステップＳ３４に進む。
【０１２５】
ステップＳ３４において、継承管理部５５は、内蔵メモリ１０Ｃのデータファイルリストを脱着型メモリ３５に合わせて更新する。すなわち、図１２の場合、データファイルリスト１１１は、１乃至５であるので、データファイルリスト１３１を更新して１乃至５としてデータファイルリスト１３１’とする。
【０１２６】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’乃至１５３’，１５４，１５５’を内蔵メモリ１０Ｃ’にデータ１２１’乃至１２３’，１２４，１２５’として記録し、脱着型メモリ３５’にデータ１４１’乃至１４３’，１４４，１４５’として記録すると共に、データ１４４に記録されていたデータを削除し、領域のみを確保した状態にする。
【０１２７】
以上のように、予め学習情報が記憶された脱着型メモリ３５のバージョン番号が内部メモリ１０Ｃのバージョン番号よりも大きい場合、結果的に、脱着型メモリ３５のデータが使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ３５’と内部メモリ１０Ｃ’に記録される。結果として、内部メモリ１０Ｃに記憶されていた学習情報は継承されないことになるが、ユーザは、脱着型メモリ３５をロボット１から取り出して、他のロボットに装着しても自らのロボット１と同様の学習情報を反映させることが可能となる。
【０１２８】
さらに、例えば、図１３で示されるように、学習情報が記録されたデータ１２１乃至１２４が記憶されている（データ１２１，１２２は、バージョン１のプログラムにより記録されたデータであることが示されている）脱着型メモリ３５を用いて、内蔵メモリ１０Ｃにデータ１４１乃至１４５が記憶されている場合（データ１４１，１４４，１４５は、バージョン２のプログラムにより記録されたデータであることが示されている）で、かつ、バージョン番号１１２が１であり，バージョン番号１３２が２である場合、学習情報が記録されているので、継承フラグ１１３は、オフにされているため、ステップＳ１３において、オンではないと判定され、その処理は、ステップＳ１８に進む。
【０１２９】
結果として、図１３の中央左部で示されるように、脱着型メモリ３５のデータ１２１乃至１２４が、メモリ１０Ｂのモデル記憶部５１の領域に展開されて、データ１５１乃至１５４として記録される。
【０１３０】
以上のような処理により、メモリ１０Ｂのモデル記憶部５１の領域は、データ１５１乃至１５４に、図３で示される機能により、学習情報が記録される。例えば、図１３で示されるように、データ１５１乃至１５３に学習情報が記録された場合、図１３中央右部のメモリ１０Ｂ’で示されるように、データ１５１’乃至１５３’が上書きされる。また、今の場合、データ１５１’乃至１５３’は、バージョン番号１のプログラムにより記録されていることが示されている。
【０１３１】
ここで、図７のフローチャートを参照して、終了処理について説明する。
【０１３２】
ステップＳ３２において、継承管理部５５は、脱着型メモリ３５のデータファイルリスト１１１と、内蔵メモリ１０Ｃのデータファイルリスト１３１を比較し、ステップＳ３３において、比較結果が一致したか否かを判定する。図１３の場合、データファイルリスト１１１は１乃至４であり，データファイルリスト１３１は１乃至５であるので、一致していないと判定されるので、その処理は、ステップＳ３４に進む。
【０１３３】
ステップＳ３４において、継承管理部５５は、内蔵メモリ１０Ｃのデータファイルリストを脱着型メモリ３５に合わせて更新する。すなわち、図１３の場合、データファイルリスト１１１は、１乃至４であるので、データファイルリスト１３１を更新して１乃至４としてデータファイルリスト１３１’とする。
【０１３４】
ステップＳ３５において、継承管理部５５は、モデル記憶部５１として機能しているメモリ１０Ｂの領域に記憶されているデータ１５１’乃至１５３’，１５４を内蔵メモリ１０Ｃ’にデータ１２１’乃至１２３’，１２４を記録し、脱着型メモリ３５’にデータ１４１’乃至１４３’，１４４を記録すると共に、データ１４４に記録されていたデータを削除し、領域のみを確保した状態にする。
【０１３５】
以上のように、予め学習情報が記憶された脱着型メモリ３５のバージョン番号が内部メモリ１０Ｃのバージョン番号よりも大きい場合、結果的に、脱着型メモリ３５のデータが使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ３５’と内部メモリ１０Ｃ’に記録される。結果として、内部メモリ１０Ｃに記憶されていた学習情報は継承されないことになるが、ユーザは、脱着型メモリ３５をロボット１から取り出して、他のロボットに装着しても自らのロボット１と同様の学習情報を反映させることが可能となる。
【０１３６】
以上の例について、図６の例においては、脱着型メモリ３５が始めて使用される場合であって、ロボット１の内蔵メモリ１０Ｃも学習情報が記録されていないとき（Ｃａｓｅ１）、図８の例においては、脱着型メモリ３５が始めて使用される場合であって、脱着型メモリ３５に記録されているデータを蓄積したプログラムのバージョン番号と、ロボット１の内蔵メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号が同一であるとき（Ｃａｓｅ２）、図９の例においては、脱着型メモリ３５が始めて使用される場合であって、脱着型メモリ３５に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット１の内蔵メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号よりも大きいとき（Ｃａｓｅ３）、図１０の例においては、脱着型メモリ３５が始めて使用される場合であって、脱着型メモリ３５に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット１の内蔵メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号よりも小さいとき（Ｃａｓｅ４）、図１１の例においては、予め学習情報が記録された脱着型メモリ３５が使用される場合であって、脱着型メモリ３５に記録されているデータを蓄積したプログラムのバージョン番号と、ロボット１の内蔵メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号とが同一であるとき（Ｃａｓｅ５）、図１２の例においては、予め学習情報が記録された脱着型メモリ３５が使用される場合であって、脱着型メモリ３５に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット１の内蔵メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号よりも大きいとき（Ｃａｓｅ６）、図１３の例においては、予め学習情報が記録された脱着型メモリ３５が使用される場合であって、脱着型メモリ３５に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット１の内蔵メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号よりも小さいとき（Ｃａｓｅ７）に分類される。
【０１３７】
図１４は、上述した条件をまとめたものである。各列毎の最上段には、ロボット１の内部メモリ１０Ｃに記録されているデータを蓄積したプログラムのバージョン番号（ver0乃至4）が記されており、各行の最左列には、脱着型メモリ３５に記録されたプログラムのバージョン番号（ver１乃至５）であり、さらに、左から2列目の「１ｓｔ」は、初めて使用する脱着型メモリ３５であることを示し、「Used」とは、予め学習情報が記録された脱着型メモリ３５であることを示している。図１４で示されるように、Case３で示される状態のとき、すなわち、内蔵メモリ１０Ｃに記録されている学習情報を記録したプログラムのバージョンよりも上位のバージョンのプログラムが記録された脱着型メモリ３５が最初に使用される場合にのみ、学習情報が継承される。結果として、従来のように、プログラムのバージョンアップをしつつも、それまでの学習情報を保持することが可能となり、バージョンアップをしても、最初から学習させていく必要がなくなる。
【０１３８】
以上においては、例えば、図１５Ａで示されるように、ロボット１において、図３で示される機能を実現させるための脱着型メモリ３５に記録されているプログラム１７１が、蓄積する学習情報１７１ａを内部メモリ１０Ｃに学習情報１７２として記憶させ、図１５Ｂで示されるように、プログラム１７１よりもバージョン番号が上位のプログラム１７１’を実行させる際、内部メモリ１０Ｃに記憶されている学習情報１７２を読み出して実行させる場合について説明してきたが、例えば、図１５Ｃで示されるような構成に対しても用いることができる。
【０１３９】
すなわち、図１５Ｃにおいては、プログラム１７１とは、全く異なるプログラム１８１をロボット１において実行させる場合にも、プログラム１７１により蓄積されたが学習情報１７２を読み込んで使用できるような場合にも対応させることができる。
【０１４０】
ただし、この場合、プログラム１８１を実行した際に実現される継承管理部５５は、プログラム１８１により蓄積された学習情報がプログラム１７１または１７１’などで使用できる保証が無いため、終了処理において、内蔵メモリ１０Ｃには学習情報を記録させず、脱着型メモリ３５にのみ記録させるようにする。
【０１４１】
図１６のフローチャートは、プログラム１８１に対応した終了処理を示している。尚、図１６におけるフローチャートのステップＳ５１，Ｓ５３乃至Ｓ５７の処理は、図７のフローチャートにおけるステップＳ３１乃至３６と同一であるのでその説明は省略する。
【０１４２】
ステップＳ５２において、継承管理部５５は、プログラム１８１の処理により取得された学習情報を内蔵メモリ１０Ｃに書き込むことが許可されているか否かを確認し許可されている場合、すなわち、プログラム１８１での処理により取得された学習情報を内蔵メモリ１０Ｃに記録することができる場合、その処理は、ステップＳ５３に進む。すなわち、通常のプログラムは、内蔵メモリ１０Ｃに書き込むことができると判定される。
【０１４３】
ステップＳ５２において、プログラム１８１の処理により取得された学習情報を内蔵メモリ１０Ｃに書き込むことが許可されていないと判定された場合、ステップＳ５８において、脱着型メモリ３５に学習情報を記録させる。
【０１４４】
以上のような構成により、様々なプログラムであっても、それまでに学習された学習情報を利用することが可能となる。
【０１４５】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０１４６】
この記録媒体は、図２に示すようにロボット１に予め組み込まれた状態でユーザに提供される、プログラムが記録されてい内蔵メモリ１０Ｃだけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク３１（フレキシブルディスクを含む）、光ディスク３２（CD-ROM(Compact Disk-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク３３（MD（Mini-Disc）（登録商標）を含む）、もしくは半導体メモリ３４（Memory Stickを含む）などよりなるパッケージメディアにより構成される。
【０１４７】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【図面の簡単な説明】
【０１４８】
【図１】本発明を適用したロボットの一実施の形態の外観構成例を示す斜視図である。
【図２】図１のロボットの内部構成例を示すブロック図である。
【図３】図２のコントローラの機能を説明する機能ブロック図である。
【図４】オートマトンを説明する図である。
【図５】図１のロボットによる起動処理を説明するフローチャートである。
【図６】始めて使用する脱着型メモリを始めてロボットに接続する際の起動処理と終了処理を説明する図である。
【図７】図１のロボットによる終了処理を説明するフローチャートである。
【図８】始めて使用する脱着型メモリをロボットに接続する際、脱着型メモリのバージョン番号と内蔵メモリのバージョン番号が同一であるときの起動処理と終了処理を説明する図である。
【図９】始めて使用する脱着型メモリをロボットに接続する際、脱着型メモリのバージョン番号が内蔵メモリのバージョン番号よりも大きいときの起動処理と終了処理を説明する図である。
【図１０】始めて使用する脱着型メモリをロボットに接続する際、脱着型メモリのバージョン番号が内蔵メモリのバージョン番号よりも小さいときの起動処理と終了処理を説明する図である。
【図１１】データが記録された脱着型メモリをロボットに接続する際、脱着型メモリのバージョン番号と内蔵メモリのバージョン番号とが同一であるときの起動処理と終了処理を説明する図である。
【図１２】データが記録された脱着型メモリをロボットに接続する際、脱着型メモリのバージョン番号が内蔵メモリのバージョン番号よりも大きいときの起動処理と終了処理を説明する図である。
【図１３】データが記録された脱着型メモリをロボットに接続する際、脱着型メモリのバージョン番号が内蔵メモリのバージョン番号よりも小さいときの起動処理と終了処理を説明する図である。
【図１４】脱着型メモリのバージョン番号と内蔵メモリのバージョン番号の組み合わせによる起動処理と終了処理を説明する図である。
【図１５】その他のロボットの例を説明する図である。
【図１６】図１５のロボットによる終了処理を説明するフローチャートである。
【符号の説明】
【０１４９】
３，３Ａ乃至３Ｄ  脚部ユニット，  ４  頭部ユニット，  ５  尻尾部ユニット，  １０  コントローラ，  １０Ａ  ＣＰＵ，  １０Ｂ  メモリ，  １０Ｃ  内部メモリ，  １２  バッテリセンサ，  １３  熱センサ，  １４  内部センサ，  １５  マイク，  １６  ＣＣＤカメラ，  １７  タッチセンサ，  １８  スピーカ，  １９  ＬＥＤ，  ５１  モデル記憶部，  ５２  行動決定機構部，  ５３  姿勢遷移機構部，  ５４  制御機構部，  ５５  継承管理部，  ５５Ａ  比較部
【図１】
0004779292.tif 000002
【図２】
0004779292.tif 000003
【図３】
0004779292.tif 000004
【図４】
0004779292.tif 000005
【図５】
0004779292.tif 000006
【図６】
0004779292.tif 000007
【図７】
0004779292.tif 000008
【図８】
0004779292.tif 000009
【図９】
0004779292.tif 000010
【図１０】
0004779292.tif 000011
【図１１】
0004779292.tif 000012
【図１２】
0004779292.tif 000013
【図１３】
0004779292.tif 000014
【図１４】
0004779292.tif 000015
【図１５】
0004779292.tif 000016
【図１６】
0004779292.tif 000017