以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
即ち、本発明のロボット制御装置は、ロボットに所定の動作を実行させるプログラムを実行する実行手段(例えば、図3の行動決定機構部52)と、実行手段により第1のプログラムが実行されることにより蓄積されるデータを、第1のプログラムのバージョン番号と共に保持する保持手段(例えば、図3のモデル記憶部51)と、保持手段によりデータと共に保持されている第1のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第2のプログラムのバージョン番号とを比較する比較手段(例えば、図3の比較部55a)と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第1のプログラムのバージョン番号が第2のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第1のプログラムのバージョン番号が第2のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段(例えば、図3の継承管理部55)とを備え、更新手段は、保持手段により保持されているデータを維持するとき、保持手段により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持手段に保持されているデータを、第2のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
本発明のロボット制御方法は、ロボットに所定の動作を実行させるプログラムを実行する実行手段と、実行手段により第1のプログラムが実行されることにより蓄積されるデータを、第1のプログラムのバージョン番号と共に保持する保持手段と、保持手段によりデータと共に保持されている第1のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第2のプログラムのバージョン番号とを比較する比較手段と、フラグの状態が、データを更新しないように示す状態である場合、比較手段の比較結果が、第1のプログラムのバージョン番号が第2のプログラムのバージョン番号よりも小さいとき、保持手段により保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較手段の比較結果が、第1のプログラムのバージョン番号が第2のプログラムのバージョン番号よりも小さくないとき、保持手段により保持されているデータを、格納媒体に格納された他のデータに更新する更新手段とを備えることを特徴とするロボット制御装置のロボット制御方法において、実行手段における、ロボットに所定の動作を実行させるプログラムを実行する実行ステップと、保持手段における、実行ステップの処理で第1のプログラムが実行されることにより蓄積されるデータを、第1のプログラムのバージョン番号と共に保持する保持ステップ(例えば、図8のフローチャートのステップS36の処理)と、比較手段における、保持ステップの処理でデータと共に保持されている第1のプログラムのバージョン番号と、データを更新するか否かを示すフラグおよびデータとは異なる他のデータと共に格納媒体に格納された第2のプログラムのバージョン番号とを比較する比較ステップ(例えば、図6のフローチャートのステップS15の処理)と、更新手段における、フラグの状態が、データを更新しないように示す状態である場合、比較ステップの処理での比較結果が、第1のプログラムのバージョン番号が第2のプログラムのバージョン番号よりも小さいとき、保持ステップの処理で保持されているデータを維持し、フラグの状態が、データを更新するように示す状態である場合、または比較制御ステップでの比較結果が、第1のプログラムのバージョン番号が第2のプログラムのバージョン番号よりも小さくないとき、保持制御ステップの処理により保持されているデータを、格納媒体に格納された他のデータに更新する更新ステップ(例えば、図6のフローチャートのステップS14の処理)とを含み、更新ステップの処理は、保持ステップの処理により保持されているデータを維持するとき、保持ステップの処理により保持可能なデータ数分だけ確保されている保持領域を、格納媒体により格納可能なデータ数分の保持領域に更新し、保持制御ステップの処理により保持されているデータを、第2のプログラムのバージョン番号と共に更新された保持領域に保持させ、フラグをデータを更新するように示す状態に設定することを特徴とする。
尚、記録媒体、および、プログラムに係る発明については、ロボット制御方法と同様であるので省略する。
図1は、本発明を適用したロボット1の一実施の形態の外観構成例を示しており、図2は、その電気的構成例を示している。
本実施の形態では、ロボット1は、例えば、犬等の四つ足の動物の形状のものとなっており、胴体部ユニット2の前後左右に、それぞれ脚部ユニット3A,3B,3C,3Dが連結されるとともに、胴体部ユニット2の前端部と後端部に、それぞれ頭部ユニット4と尻尾部ユニット5が連結されることにより構成されている。
尻尾部ユニット5は、胴体部ユニット2の上面に設けられたベース部5Bから、2自由度をもって湾曲または揺動自在に引き出されている。
胴体部ユニット2には、ロボット1全体の制御を行うコントローラ10、ロボット1の動力源となるバッテリ11、並びにバッテリセンサ12および熱センサ13からなる内部センサ部14などが収納されている。
頭部ユニット4には、「耳」に相当するマイク(マイクロフォン)15、「目」に相当するCCD(Charge Coupled Device)カメラ16、「触覚」に相当するタッチセンサ17、および「口」に相当するスピーカ18が、それぞれ所定位置に配設されている他、LED(Light Emitting Diode)19が、「目」の位置の設けられている。また、頭部ユニット4には、口の下顎に相当する下顎部4Aが1自由度をもって可動に取り付けられており、この下顎部4Aが動くことにより、ロボット1の口の開閉動作が実現されるようになっている。
脚部ユニット3A乃至3Dそれぞれの関節部分や、脚部ユニット3A乃至3Dそれぞれと胴体部ユニット2の連結部分、頭部ユニット4と胴体部ユニット2の連結部分、頭部ユニット4と下顎部4Aの連結部分、並びに尻尾部ユニット5と胴体部ユニット2の連結部分などには、図2に示すように、それぞれアクチュエータ3AA1乃至3AAK、3BA1乃至3BAK、3CA1乃至3CAK、3DA1乃至3DAK、4A1乃至4AL、5A1および5A2が配設されている。
頭部ユニット4におけるマイク15は、ユーザからの発話を含む周囲の音声(音)を集音し、得られた音声信号を、コントローラ10に送出する。CCDカメラ16は、周囲の状況を撮像し、得られた画像信号を、コントローラ10に送出する。
タッチセンサ17は、例えば、頭部ユニット4の上部に設けられており、ユーザからの「なでる」や「たたく」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を圧力検出信号としてコントローラ10に送出する。
胴体部ユニット2におけるバッテリセンサ12は、バッテリ11の残量を検出し、その検出結果を、バッテリ残量検出信号としてコントローラ10に送出する。熱センサ13は、ロボット1内部の熱を検出し、その検出結果を、熱検出信号としてコントローラ10に送出する。
コントローラ10は、CPU(Central Processing Unit)10Aやメモリ10B等を内蔵しており、CPU10Aにおいて、メモリ10Bに記憶された制御プログラムが実行されることにより、各種の処理を行う。また、メモリ10Cは、フラッシュメモリからなり、後述するモデル記憶部51に記憶された情報(学習情報)を記憶する。また、CPU10Aは、ドライブ30に接続された磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34に記憶されているプログラム、または、データを、メモリ10Bにロードして実行する。
即ち、コントローラ10は、マイク15や、CCDカメラ16、タッチセンサ17、バッテリセンサ12、熱センサ13から与えられる音声信号、画像信号、圧力検出信号、バッテリ残量検出信号、熱検出信号に基づいて、周囲の状況や、ユーザからの指令、ユーザからの働きかけなどの有無を判断する。
さらに、コントローラ10は、この判断結果等に基づいて、続く行動を決定し、その決定結果に基づいて、アクチュエータ3AA1乃至3AAK、3BA1乃至3BAK、3CA1乃至3CAK、3DA1乃至3DAK、4A1乃至4AL、5A1および5A2のうちの必要なものを駆動させる。これにより、頭部ユニット4を上下左右に振らせたり、下顎部4Aを開閉させる。さらには、尻尾部ユニット5を動かせたり、各脚部ユニット3A乃至3Dを駆動して、ロボット1を歩行させるなどの行動を行わせる。
また、コントローラ10は、必要に応じて、合成音を生成し、スピーカ18に供給して出力させたり、ロボット1の「目」の位置に設けられたLED19を点灯、消灯または点滅させる。
以上のようにして、ロボット1は、周囲の状況等に基づいて自律的に行動をとるようになっている。
次に、図3は、図2のコントローラ10の機能的構成例を示している。なお、図3に示す機能的構成は、CPU10Aが、メモリ10Bに記憶された制御プログラムを実行することで実現されるようになっている。
センサ入力処理部50は、マイク15や、CCDカメラ16、タッチセンサ17等から与えられる音声信号、画像信号、圧力検出信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部51および行動決定機構部52に通知する。
即ち、センサ入力処理部50は、音声認識部50Aを有しており、音声認識部50Aは、マイク15から与えられる音声信号について音声認識を行う。そして、音声認識部50Aは、その音声認識結果としての、例えば、「歩け」、「伏せ」、「ボールを追いかけろ」等の指令を、状態認識情報として、モデル記憶部51および行動決定機構部52に通知する。
また、センサ入力処理部50は、画像認識部50Bを有しており、画像認識部50Bは、CCDカメラ16から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部50Bは、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部51および行動決定機構部52に通知する。
さらに、センサ入力処理部50は、圧力処理部50Cを有しており、圧力処理部50Cは、タッチセンサ17から与えられる圧力検出信号を処理する。そして、圧力処理部50Cは、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「頭が触られた」と認識して、その認識結果を、状態認識情報として、モデル記憶部51および行動決定機構部52に通知する。
モデル記憶部51は、ロボット1の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶、管理している。
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態(度合い)を、所定の範囲の値によってそれぞれ表し、センサ入力処理部50からの状態認識情報や時間経過等に基づいて、その値を変化させる。
本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態(度合い)を、所定の範囲の値によってそれぞれ表し、センサ入力処理部50からの状態認識情報や時間経過等に基づいて、その値を変化させる。
成長モデルは、例えば、図4に示すようなオートマトンで構成される。このオートマトンでは、成長状態は、ノード(状態)NODE0乃至NODEGで表現され、成長、つまり成長状態の遷移は、ある成長状態に対応するノードNODEgから、次の成長状態に対応するノードNODEg+1への遷移を表すアークARCg+1で表現される(g=0,1,・・・,G−1)。
ここで、本実施の形態では、成長の状態は、図4において、左のノードから右方向のノードに遷移していくようになっている。従って、図4において、例えば、最も左のノードNODE0は、生まれたばかりの「新生児」の状態を表し、左から2番目のノードNODE1は、「幼児」の状態を表し、左から3番目のノードNODE2は「児童」の状態を表す。以下、同様にして、右方向のノードほど、より成長した状態を表し、最も右のノードNODEGは、「高齢」の状態を表す。
そして、あるノードNODEgから、右隣のノードNODEg+1への遷移を表すアークARCg+1には、その遷移が生じるための条件(入力)Ptg+1が設定されており、ノードの遷移(成長)は、この条件に基づいて決定される。即ち、アークARCg+1においては、その遷移が生じるために要求される、CCDカメラ16や、マイク9、タッチセンサ17からの出力、時間経過等についての条件Ptg+1が設定されており、その条件Ptg+1が満たされた場合に、ノードNODEgから右隣のノードNODEg+1への遷移が生じ、ロボット1が成長する。
モデル記憶部51は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部52に送出する。
なお、モデル記憶部51には、センサ入力処理部50から状態認識情報が供給される他、行動決定機構部52から、ロボット1の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、同一の状態認識情報が与えられても、行動情報が示すロボット1の行動に応じて、異なる状態情報(感情モデル、本能モデル、および成長モデルの値で表される感情、本能、および成長の状態)を生成するようになっている。
行動決定機構部52は、センサ入力処理部50からの状態認識情報や、モデル記憶部51からの状態情報、時間経過等に基づいて、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部53に送出する。
即ち、行動決定機構部52は、ロボット1がとり得る行動をステート(状態)(state)に対応させた有限オートマトンを、ロボット1の行動を規定する行動モデルとして管理しており、この行動モデルとしての有限オートマトンにおけるステートを、センサ入力処理部50からの状態認識情報や、モデル記憶部51における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
ここで、行動決定機構部52は、所定のトリガ(trigger)があったことを検出すると、ステートを遷移させる。即ち、行動決定機構部52は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部51から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
なお、行動決定機構部52は、上述したように、センサ入力処理部50からの状態認識情報だけでなく、モデル記憶部51における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値(状態情報)によっては、ステートの遷移先は異なるものとなる。
その結果、行動決定機構部52は、例えば、状態情報が、「怒っていない」こと、および「お腹がすいていない」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、目の前に手のひらが差し出されたことに応じて、「お手」という行動をとらせる行動指令情報を生成し、これを、姿勢遷移機構部53に送出する。
また、行動決定機構部52は、例えば、状態情報が、「怒っていない」こと、および「お腹がすいている」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、目の前に手のひらが差し出されたことに応じて、「手のひらをぺろぺろなめる」ような行動を行わせるための行動指令情報を生成し、これを、姿勢遷移機構部53に送出する。
また、行動決定機構部52は、例えば、状態情報が、「怒っている」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、状態情報が、「お腹がすいている」ことを表していても、また、「お腹がすいていない」ことを表していても、「ぷいと横を向く」ような行動を行わせるための行動指令情報を生成し、これを、姿勢遷移機構部53に送出する。
なお、行動決定機構部52には、モデル記憶部51から供給される状態情報が示す感情や、本能、成長の状態に基づいて、遷移先のステートに対応する行動のパラメータとしての、例えば、歩行の速度や、手足を動かす際の動きの大きさおよび速度などを決定させることができ、この場合、それらのパラメータを含む行動指令情報が、姿勢遷移機構部53に送出される。
姿勢遷移機構部53は、行動決定機構部52から供給される行動指令情報に基づいて、ロボット1の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これを制御機構部54に送出する。
ここで、現在の姿勢から次に遷移可能な姿勢は、例えば、胴体や手や足の形状、重さ、各部の結合状態のようなロボット1の物理的形状と、関節が曲がる方向や角度のようなアクチュエータ3AA1乃至5A1および5A2の機構とによって決定される。
また、次の姿勢としては、現在の姿勢から直接遷移可能な姿勢と、直接には遷移できない姿勢とがある。例えば、4本足のロボット1は、手足を大きく投げ出して寝転んでいる状態から、伏せた状態へ直接遷移することはできるが、立った状態へ直接遷移することはできず、一旦、手足を胴体近くに引き寄せて伏せた姿勢になり、それから立ち上がるという2段階の動作が必要である。また、安全に実行できない姿勢も存在する。例えば、4本足のロボット1は、その4本足で立っている姿勢から、両前足を挙げてバンザイをしようとすると、簡単に転倒してしまう。
このため、姿勢遷移機構部53は、直接遷移可能な姿勢をあらかじめ登録しておき、行動決定機構部52から供給される行動指令情報が、直接遷移可能な姿勢を示す場合には、その行動指令情報を、そのまま姿勢遷移情報として、制御機構部54に送出する。一方、行動指令情報が、直接遷移不可能な姿勢を示す場合には、姿勢遷移機構部53は、遷移可能な他の姿勢に一旦遷移した後に、目的の姿勢まで遷移させるような姿勢遷移情報を生成し、制御機構部54に送出する。これによりロボット1が、遷移不可能な姿勢を無理に実行しようとする事態や、転倒するような事態を回避することができるようになっている。
制御機構部54は、姿勢遷移機構部53からの姿勢遷移情報にしたがって、アクチュエータ3AA1乃至5A1および5A2を駆動するための制御信号を生成し、これを、アクチュエータ3AA1乃至5A1および5A2に送出する。これにより、アクチュエータ3AA1乃至5A1および5A2は、制御信号にしたがって駆動し、ロボット1は、自律的に行動を起こす。
継承管理部55は、終了時(ロボット1の電源がオフにされるとき)には、モデル記憶部51に記憶されている感情モデル、本能モデル、成長モデルの情報をドライブ30に接続された磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34に書込むとともに、内蔵メモリ10Cに書き込む。
また、継承管理部55は、起動時(ロボット1の電源がオンにされるとき)には、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34から読み出すか、または、内蔵メモリ10Cに記憶されている感情モデル、本能モデル、成長モデルを読み出して、モデル記憶部51に記憶させる。
より詳細には、コントローラ10のセンサ入力部50乃至制御機構部54は、ドライブ30に接続された磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34に記憶されているプログラムであり、起動時に読み出されて、メモリ10Bにロードされて実行される。従って、このセンサ入力部50乃至制御機構部54を実現するプログラムは、更新することが可能である。
このプログラムの更新の程度は、バージョン番号によって管理されており、各プログラムには、バージョン番号が付されている。また、モデル記憶部51に記憶されている感情モデル、本能モデル、および成長モデルの情報には、その情報が生成されたときに使用されたプログラムのバージョン番号が付されている。
通常、このプログラムが起動される際、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34からプログラムと感情モデル、本能モデル、および成長モデルが読み出されるように動作する。このような構成とすることで、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34を差し替えることで、他のロボット1でも、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34が装着されていたロボット1の感情モデル、本能モデル、および成長モデルの情報をそのまま使用することが可能となる。
しかしながら、例えば、このプログラムが更新される場合、すなわち、いわゆるバージョンアップされるような場合、プログラムは、一般に、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34で配布されることになるため、新しいバージョン番号のプログラムは記憶されているが、それまでに蓄積されたロボット1の感情モデル、本能モデル、および成長モデルの情報は、記録されていない。そこで、継承管理部55の比較部55aは、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34に記録されたプログラムのバージョン番号と、内蔵メモリ10Cに記憶されている感情モデル、本能モデル、および成長モデルの情報のバージョン番号とを比較する。そして、継承管理部55は、その比較結果に基づいて、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34に記録された感情モデル、本能モデル、および成長モデルの情報か、または、内蔵メモリ10Cに記憶されている感情モデル、本能モデル、および成長モデルの情報のいずれかをモデル記憶部51に展開させる。
結果として、それまでのバージョン番号の古いプログラムを用いて、蓄積されてきた感情モデル、本能モデル、および成長モデルの情報を新しいバージョン番号のプログラムに継承させることが可能となる。
次に、図5のフローチャートを参照して、継承管理部55による起動処理について説明する。尚、以降においては、磁気ディスク31、光ディスク32、光磁気ディスク33、または半導体メモリ34は、脱着型メモリ35と総称する。また、感情モデル、本能モデル、および成長モデルの情報は、図3で示される機能による繰り返し動作によって、学習されていく情報であるとも言えるので、以降においては、学習情報と総称する。
ステップS11において、継承管理部55は、ドライブ30に問い合わせて、図3で示したような機能を実現させるプログラムが記録された脱着型メモリ35が接続されたか否かを判定し、接続されたと判定されるまで、その処理を繰り返す。例えば、脱着型メモリ35が接続された場合、その処理は、ステップS12に進む。
ステップS12において、継承管理部55は、接続された脱着型メモリ35に付された継承フラグを確認する。ここで、継承フラグ113(図6)とは、予め脱着型メモリ35に記憶された学習情報をモデル記憶部51に展開させるか、または、メモリ10Cに記憶された学習情報をモデル記憶部51に展開させるかを指定するフラグであり、脱着型メモリ35に記録されている情報である。
継承フラグ113がオンのとき、内蔵メモリ10Cに記憶された学習情報をメモリ10B(モデル記憶部51の機能を有する領域)に展開させることが指定され、継承フラグ113がオフのとき、脱着型メモリ35に記憶された学習情報をメモリ10B(モデル記憶部51の機能を有する領域)に展開させることが指定されている。また、基本的には、脱着型メモリ35にプログラムのみが記録され、学習情報が記録されていない場合(プログラムのみが記録された脱着型メモリ35の出荷時の状態の場合)、継承フラグはオンに設定され、それ以外の場合、すなわち、一度でも学習情報が記録された後の場合、継承フラグはオフに設定される。
ステップS13において、継承管理部55は、ドライブ30に装着された脱着型メモリ35に記録されている継承フラグ113がオンであるか否かを判定する。例えば、図6で示されるように、学習情報が記録されていない脱着型メモリ35(未使用の脱着型メモリ35)が、内蔵メモリ10Cに学習情報が記録されていないロボット1に装着された場合、継承フラグ113は、オンにされているので、その処理は、ステップS15に進む。
ここで、図6の左部の上下に示されているドライブ30に装着される前の脱着型メモリ35と、そのときの内蔵メモリ10Cについて説明する。図6の左上部の脱着型メモリ35は、ロボット1のドライブ30に装着される前の脱着型メモリ35の状態を示している。脱着型メモリ35には、データファイルリスト111が設けられており、格納可能なファイル数とそのリストが記録されており、今の場合、1乃至4までが記録されており、4個のファイルまでが学習情報として記録できることが示されている(図中では、脱着型メモリ35の外側に記載されているが、情報は、脱着型メモリ35の中に記録されている)。図6の脱着型メモリ35の右上には、格納されているデータを書き込んだプログラムのバージョンを示すバージョン番号112が示されており、今の場合、「1」と記録されており、バージョン番号1のプログラムにより記録される学習情報であることが示されている。さらに、今の場合、脱着型メモリ35は、プログラムのみが記録され、学習情報が記録されていない状態であるので、継承フラグ113がオンにされている。さらに、データファイルリスト111に対応する個数のデータ121乃至124が記されているが、格納する領域が確保されているのみでデータそのものは格納されていない。尚、点線で示されているデータについては、領域のみが確保されているのみで、実際にデータが記録されていないことを示し、実線で示されているデータは、実際のデータが格納されていることを示している。尚、図示していないが、脱着型メモリ35は、図3で示されている機能を実現させるプログラムも記録している。
一方、左下部には、内蔵メモリ10Cが示されており、今の場合、内蔵メモリ10Cには、学習情報が記録されておらず、また、脱着型メモリ35とも異なりプログラムも記録されていないので、バージョン番号132やファイルデータリスト131にも情報が記録されていない。
ここで、図5のフローチャートの説明に戻る。
ステップS14において、継承管理部55は、内蔵メモリ10Cにデータが記録されているか否かを判定する。図6の場合、内蔵メモリ10Cには、データが何も記録されていないので、内蔵メモリ10Cにデータが記録されていないと判定され、その処理は、ステップS18に進む。
ステップS18において、継承管理部55は、脱着型メモリ35に記録されているデータを読み出し、メモリ10Bのモデル記憶部51の領域に上書きして更新し、処理を終了する。すなわち、今の場合、内蔵メモリ10Cには、データが記録されていない(データを書き込む領域も確保されていない)ので、脱着型メモリ35の情報がそのままモデル記憶部51に書き込まれることになる。図6の場合、図中中央左部のモデル記憶部51には、脱着型メモリ35のデータ121乃至124が上書きされて、データ151乃至154として記録されている。
以上のような処理により、メモリ10Bのモデル記憶部51の領域には、データ151乃至154に、図3で示される機能により、学習情報が記録される。例えば、図6で示されるように、データ151,153に学習情報が記録された場合、図6中央右部のメモリ10B’で示されるように、データ151’,153’が上書きされる。また、図中各右上部には、データを記録したプログラムのバージョン番号が記録されており、今の場合、「1」であり、データ151’,153’は、バージョン番号1のプログラムにより記録されていることが示されている。尚、図中の「update」は、更新、または、上書きがあったことを示す。
ここで、図7のフローチャートを参照して、終了処理について説明する。
ステップS31において、継承管理部55は、操作の終了が指示されたか否かを判定し、操作の終了が指示されるまでその処理を繰り返し、例えば、図示せぬ電源スイッチが操作されて、操作の終了が指示された場合、その処理は、ステップS32に進む。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図6の場合、データファイルリスト111は、1乃至4であるのに対して、データファイルリスト131は、何も記録されていないので、一致していないと判定され、その処理は、ステップS34に進む。
ステップS34において、継承管理部55は、内蔵メモリ10Cのデータファイルリストを脱着型メモリ35に合わせて更新する。すなわち、図6の場合、データファイルリスト111は、1乃至4であるので、データファイルリスト131を更新して1乃至4としてデータファイルリスト131’とする。すなわち、この段階で、データ141乃至144が実際のデータは存在しないが、データ領域として確保される。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’,152,153’,154を内蔵メモリ10Cおよび脱着型メモリ35にそれぞれデータ121’,122,123’,124およびデータ141’,142,143’,144として記録する。
ステップS36において、継承管理部55は、脱着型メモリ35にアクセスし、継承フラグ113をオフに設定し、その処理は終了する。
以上の処理により、始めて使用する脱着型メモリ35を用いて、始めてロボット1を使用することにより、脱着型メモリ35には、学習情報が蓄積されると共に、継承フラグ113がオフにされ、ロボット1の内蔵メモリ10Cにも、脱着型メモリ35にも、同じ学習情報が記録される。尚、図6以降においては、「’」が付されていない符号が付けられたものは起動時の状態を示すものであり、「’」が付された符号が付けられたものは終了時の状態を示すものである。
ここで、図5のフローチャートに戻る。尚、以降において、上述した処理と同様の処理については、適宜説明を省略する。すなわち、例えば、図8で示されるように、始めて使用する脱着型メモリ35を用いて、内蔵メモリ10Cにデータ141乃至144が記憶されている場合(データ141,144は、バージョン1のプログラムにより記録されたデータであることが示されている)で、かつ、バージョン番号112,132が何れも同じ1である場合、ステップS14において、内蔵メモリ10Cにはデータがあると判定されるので、その処理は、ステップS15に進む。
さらに、ステップS15において、継承管理部55の比較部55aは、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいか否かを判定する。図8の場合、ステップS15において、継承管理部55の比較部55aは、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいか否かを判定する。図8の場合、脱着型メモリ35のデータのバージョン番号112および内蔵メモリ10Cに記録されているデータのバージョン番号は、いずれも1であり、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さくないので、その処理は、ステップS18に進む。
結果として、図8の中央左部で示されるように、脱着型メモリ35のデータ121乃至124が、メモリ10Bのモデル記憶部51の領域に展開されて、データ151乃至154として記録される。
以上のような処理により、メモリ10Bは、データ151乃至154に、図3で示される機能により、学習情報が記録される。例えば、図8で示されるように、データ151,153,154に学習情報が記録された場合、図8中央右部のメモリ10B’で示されるように、データ151’,153’,154’が上書きされる。また、今の場合、データ151’,153’,154’は、バージョン番号1のプログラムにより記録されていることが示されている。
ここで、図7のフローチャートを参照して、終了処理について説明する。尚、以降において、上述した主降りと同様の処理については適宜説明を省略する。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図8の場合、データファイルリスト111,131は、いずれも1乃至4であるので、一致していると判定されるので、ステップS34の処理がスキップされて、その処理は、ステップS35に進む。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’,152,153’,154’を内蔵メモリ10C’および脱着型メモリ35’にそれぞれデータ121’,122,123’,124’およびデータ141’,142,143’,144’として記録する。
以上のように、脱着型メモリ35のバージョン番号と内部メモリ10Cのバージョン番号が一致する場合、脱着型メモリ35のデータが使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ35’と内部メモリ10C’に記録される。結果として、内部メモリ10Cに記憶されていた学習情報は継承されないことになる。しかしながら、これは、第1のユーザの脱着型メモリ35により蓄積された内部メモリ10Cに記憶されていた学習情報が、同じバージョン番号のプログラムが記録された第2のユーザの脱着型メモリ35がドライブ30に接続された場合にでもメモリ10Bに読み込まれて実行されてしまうと、第2のユーザの脱着型メモリ35により学習情報が盗まれたり、破壊されたりする恐れがあるため、メモリ10Bに記憶された学習情報は、継承されないようになされている。
また、例えば、図9で示されるように、データファイルリスト111が1乃至5であって、始めて使用する脱着型メモリ35を用いて、内蔵メモリ10Cにデータ141乃至144が記憶されている場合(データ141,144は、バージョン1のプログラムにより記録されたデータであることが示されている)で、バージョン番号112が1であり、バージョン番号132が2であるとき、ステップS14において、内蔵メモリ10Cにはデータがあると判定されるので、その処理は、ステップS15に進む。
さらに、ステップS15において、継承管理部55の比較部55aは、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいか否かを判定する。図9の場合、ステップS15において、継承管理部55の比較部55aは、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいか否かを判定する。図9の場合、脱着型メモリ35のデータのバージョン番号112が2であり、内蔵メモリ10Cに記録されているデータのバージョン番号が1であるため、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいと判定されるので、その処理は、ステップS16に進む。
ステップS16において、継承管理部55は、メモリ10Bのデータファイルリスト111に応じたデータの個数を設定する。すなわち、今の場合、継承管理部55は、データ151乃至155を設定する。尚、この処理においては、データ151乃至155は領域が確保されるのみであって、データそのものは記録されていない。
ステップS17において、継承管理部55は、内蔵メモリ10Cに記憶されている学習情報を読出し、メモリ10Bのモデル記憶部51の領域に展開する。図9の場合、内部メモリ10Cにおいては、学習情報としてデータ141乃至144が記録されており、バージョン番号1のプログラムによる学習情報がデータ141,144として記録されているため、結果として、ステップS17の処理により、メモリ10Bには、データ151乃至155が設定され、データ151,154に学習情報が上書きされた状態となる。
以上のような処理により、メモリ10Bのモデル記憶部51の領域には、データ151乃至155に、図3で示される機能により、学習情報が記録される。例えば、図9で示されるように、データ151,153,153に学習情報が記録された場合、図9中央右部のメモリ10B’で示されるように、データ151’,153’乃至155’が上書きされる。また、今の場合、データ151’,153’乃至155’は、脱着型メモリ35に記録されているバージョン番号2のプログラムにより記録されていることが示されている。
ここで、図7のフローチャートを参照して、終了処理について説明する。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図9の場合、データファイルリスト111は、1乃至5であり、データファイルリスト131は、1乃至4であるので、一致していないと判定されるので、その処理は、ステップS34に進む。
ステップS34において、継承管理部55は、内蔵メモリ10Cのデータファイルリストを脱着型メモリ35に合わせて更新する。すなわち、図9の場合、データファイルリスト111は、1乃至5であるので、データファイルリスト131を更新して1乃至5としてデータファイルリスト131’とする。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’,152,153’乃至155’を内蔵メモリ10C’および脱着型メモリ35’にそれぞれデータ121’,122,123’乃至125’およびデータ141’,142,143’乃至145’として記録する。
以上のように、脱着型メモリ35のバージョン番号が内部メモリ10Cのバージョン番号よりも大きい場合、内部メモリ10Cの学習情報が継承され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ35’と内部メモリ10C’に記録される。結果として、内部メモリ10Cに記憶されていた学習情報が継承さることになると共に、図3で示されたコントローラ10を実現するプログラムのバージョンをアップさせることができる。従って、従来のようにプログラムがバージョンアップされることにより、それまでの学習情報が失われるといった問題が解消され、ユーザは、新たな機能を備えたプログラムによりさらに学習情報を蓄積させていくことが可能となる。
さらに、例えば、図10で示されるように、始めて使用する脱着型メモリ35を用いて、内蔵メモリ10Cにデータ141乃至145が記憶されている場合(データ141,144,145は、バージョン2のプログラムにより記録されたデータであることが示されている)で、かつ、バージョン番号112が1であり、バージョン番号132が2である場合、ステップS14において、内蔵メモリ10Cにはデータがあると判定されるので、その処理は、ステップS15に進む。
さらに、ステップS15において、継承管理部55の比較部55aは、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいか否かを判定する。図10の場合、ステップS15において、継承管理部55の比較部55aは、内蔵メモリ10Cに記録されているデータのバージョン番号が、脱着型メモリ35のデータのバージョン番号よりも小さいか否かを判定する。図10の場合、脱着型メモリ35のデータのバージョン番号112が1であり、内蔵メモリ10Cに記録されているデータのバージョン番号132が2であるので、同一ではないと判定され、その処理は、ステップS18に進む。
結果として、図10の中央左部で示されるように、脱着型メモリ35のデータ121乃至124が、メモリ10Bに上書きされて、データ151乃至154として記録される。
以上のような処理により、メモリ10Bのモデル記憶部51の領域は、データ151乃至154に、図3で示される機能により、学習情報が記録される。例えば、図10で示されるように、データ151,153,153に学習情報が記録された場合、図10中央右部のメモリ10B’で示されるように、データ151’,153’が上書きされる。また、今の場合、データ151’,153’は、バージョン番号1のプログラムにより記録されていることが示されている。
ここで、図7のフローチャートを参照して、終了処理について説明する。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図10の場合、データファイルリスト111は1乃至4であり、データファイルリスト131は、1乃至5であるので、一致していないと判定されるので、その処理は、ステップS34に進む。
ステップS34において、継承管理部55は、内蔵メモリ10Cのデータファイルリストを脱着型メモリ35に合わせて更新する。すなわち、図10の場合、データファイルリスト111は、1乃至4であるので、データファイルリスト131を更新して1乃至4としてデータファイルリスト131’とする。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’,152,153’,154を内蔵メモリ10C’および脱着型メモリ35’にそれぞれデータ121’,122,123’,124およびデータ141’,142,143’,144として記録する。
以上のように、脱着型メモリ35のバージョン番号が内部メモリ10Cのバージョン番号よりも小さい場合、脱着型メモリ35のデータ使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ35’と内部メモリ10C’に記録される。結果として、内部メモリ10Cに記憶されていた学習情報は継承されず、さらに、それまでの学習情報は削除されることになる。すなわち、図10の場合、脱着型メモリ35に記録されたプログラムのバージョン番号は1であって、バージョン番号が2のプログラムにより蓄積された内蔵メモリ10Cに記録されているデータは、バージョン番号1のプログラムでは使用することができない恐れがあるため、内部メモリ10Cに蓄積された学習情報は削除されることになる。
さらに、例えば、図11で示されるように、学習情報が記録されたデータ121乃至124が記憶されている(データ121,122は、バージョン1のプログラムにより記録されたデータであることが示されている)脱着型メモリ35を用いて、内蔵メモリ10Cにデータ141乃至144が記憶されている場合(データ141,144は、バージョン1のプログラムにより記録されたデータであることが示されている)で、かつ、バージョン番号112,132がいずれも1である場合、ステップS13において、学習情報が記録されているので、継承フラグ113は、オフにされており、オンではないと判定され、その処理は、ステップS18に進む。
結果として、図11の中央左部で示されるように、脱着型メモリ35のデータ121乃至124が、メモリ10Bのモデル記憶部51の領域に展開されて、データ151乃至154として記録される。
以上のような処理により、メモリ10Bのモデル記憶部51の領域は、データ151乃至154に、図3で示される機能により、学習情報が記録される。例えば、図11で示されるように、データ151,152に学習情報が記録された場合、図11中央右部のメモリ10B’で示されるように、データ151’乃至153’が上書きされる。また、今の場合、データ151’乃至153’は、バージョン番号1のプログラムにより記録されていることが示されている。
ここで、図7のフローチャートを参照して、終了処理について説明する。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図11の場合、データファイルリスト111,131はいずれも1乃至4であるので、一致していると判定されるので、ステップS34の処理はスキップされ、その処理は、ステップS35に進む。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’乃至153’,154を内蔵メモリ10C’にデータ121’乃至123’,124を記録し、脱着型メモリ35’にデータ141’乃至143’として記録すると共に、データ144に記録されていたデータを削除し、領域のみを確保した状態にする。
以上のように、予め学習情報が記憶された脱着型メモリ35のバージョン番号と内部メモリ10Cのバージョン番号が同一である場合、結果的に、脱着型メモリ35のデータ使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ35’と内部メモリ10C’に記録される。結果として、内部メモリ10Cに記憶されていた学習情報は継承されないことになるが、ユーザは、脱着型メモリ35をロボット1から取り出して、他のロボットに装着しても自らのロボット1と同様の学習情報を反映させることが可能となる。
また、例えば、図12で示されるように、学習情報が記録されたデータ121乃至125が記憶されている(データ121,122,125は、バージョン2のプログラムにより記録されたデータであることが示されている)脱着型メモリ35を用いて、内蔵メモリ10Cにデータ141乃至144が記憶されている場合(データ141,144は、バージョン1のプログラムにより記録されたデータであることが示されている)で、かつ、バージョン番号112が2であり,バージョン番号132が1である場合、学習情報が記録されているので、継承フラグ113は、オフにされているため、ステップS13において、オンではないと判定され、その処理は、ステップS18に進む。
結果として、図12の中央左部で示されるように、脱着型メモリ35のデータ121乃至125が、メモリ10Bのモデル記憶部51の領域に展開されて、データ151乃至155として記録される。
以上のような処理により、メモリ10Bのモデル記憶部51の領域は、データ151乃至155に、図3で示される機能により、学習情報が記録される。例えば、図12で示されるように、データ151乃至153,155に学習情報が記録された場合、図12中央右部のメモリ10B’で示されるように、データ151’乃至153’,155’が上書きされる。また、今の場合、データ151’乃至153’ ,155’は、バージョン番号2のプログラムにより記録されていることが示されている。
ここで、図7のフローチャートを参照して、終了処理について説明する。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図12の場合、データファイルリスト111は1乃至5であり,データファイルリスト131は1乃至4であるので、一致していないと判定されるので、その処理は、ステップS34に進む。
ステップS34において、継承管理部55は、内蔵メモリ10Cのデータファイルリストを脱着型メモリ35に合わせて更新する。すなわち、図12の場合、データファイルリスト111は、1乃至5であるので、データファイルリスト131を更新して1乃至5としてデータファイルリスト131’とする。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’乃至153’,154,155’を内蔵メモリ10C’にデータ121’乃至123’,124,125’として記録し、脱着型メモリ35’にデータ141’乃至143’,144,145’として記録すると共に、データ144に記録されていたデータを削除し、領域のみを確保した状態にする。
以上のように、予め学習情報が記憶された脱着型メモリ35のバージョン番号が内部メモリ10Cのバージョン番号よりも大きい場合、結果的に、脱着型メモリ35のデータが使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ35’と内部メモリ10C’に記録される。結果として、内部メモリ10Cに記憶されていた学習情報は継承されないことになるが、ユーザは、脱着型メモリ35をロボット1から取り出して、他のロボットに装着しても自らのロボット1と同様の学習情報を反映させることが可能となる。
さらに、例えば、図13で示されるように、学習情報が記録されたデータ121乃至124が記憶されている(データ121,122は、バージョン1のプログラムにより記録されたデータであることが示されている)脱着型メモリ35を用いて、内蔵メモリ10Cにデータ141乃至145が記憶されている場合(データ141,144,145は、バージョン2のプログラムにより記録されたデータであることが示されている)で、かつ、バージョン番号112が1であり,バージョン番号132が2である場合、学習情報が記録されているので、継承フラグ113は、オフにされているため、ステップS13において、オンではないと判定され、その処理は、ステップS18に進む。
結果として、図13の中央左部で示されるように、脱着型メモリ35のデータ121乃至124が、メモリ10Bのモデル記憶部51の領域に展開されて、データ151乃至154として記録される。
以上のような処理により、メモリ10Bのモデル記憶部51の領域は、データ151乃至154に、図3で示される機能により、学習情報が記録される。例えば、図13で示されるように、データ151乃至153に学習情報が記録された場合、図13中央右部のメモリ10B’で示されるように、データ151’乃至153’が上書きされる。また、今の場合、データ151’乃至153’は、バージョン番号1のプログラムにより記録されていることが示されている。
ここで、図7のフローチャートを参照して、終了処理について説明する。
ステップS32において、継承管理部55は、脱着型メモリ35のデータファイルリスト111と、内蔵メモリ10Cのデータファイルリスト131を比較し、ステップS33において、比較結果が一致したか否かを判定する。図13の場合、データファイルリスト111は1乃至4であり,データファイルリスト131は1乃至5であるので、一致していないと判定されるので、その処理は、ステップS34に進む。
ステップS34において、継承管理部55は、内蔵メモリ10Cのデータファイルリストを脱着型メモリ35に合わせて更新する。すなわち、図13の場合、データファイルリスト111は、1乃至4であるので、データファイルリスト131を更新して1乃至4としてデータファイルリスト131’とする。
ステップS35において、継承管理部55は、モデル記憶部51として機能しているメモリ10Bの領域に記憶されているデータ151’乃至153’,154を内蔵メモリ10C’にデータ121’乃至123’,124を記録し、脱着型メモリ35’にデータ141’乃至143’,144を記録すると共に、データ144に記録されていたデータを削除し、領域のみを確保した状態にする。
以上のように、予め学習情報が記憶された脱着型メモリ35のバージョン番号が内部メモリ10Cのバージョン番号よりも大きい場合、結果的に、脱着型メモリ35のデータが使用され、さらに、学習情報が蓄積されると、その情報が、脱着型メモリ35’と内部メモリ10C’に記録される。結果として、内部メモリ10Cに記憶されていた学習情報は継承されないことになるが、ユーザは、脱着型メモリ35をロボット1から取り出して、他のロボットに装着しても自らのロボット1と同様の学習情報を反映させることが可能となる。
以上の例について、図6の例においては、脱着型メモリ35が始めて使用される場合であって、ロボット1の内蔵メモリ10Cも学習情報が記録されていないとき(Case1)、図8の例においては、脱着型メモリ35が始めて使用される場合であって、脱着型メモリ35に記録されているデータを蓄積したプログラムのバージョン番号と、ロボット1の内蔵メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号が同一であるとき(Case2)、図9の例においては、脱着型メモリ35が始めて使用される場合であって、脱着型メモリ35に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット1の内蔵メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号よりも大きいとき(Case3)、図10の例においては、脱着型メモリ35が始めて使用される場合であって、脱着型メモリ35に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット1の内蔵メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号よりも小さいとき(Case4)、図11の例においては、予め学習情報が記録された脱着型メモリ35が使用される場合であって、脱着型メモリ35に記録されているデータを蓄積したプログラムのバージョン番号と、ロボット1の内蔵メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号とが同一であるとき(Case5)、図12の例においては、予め学習情報が記録された脱着型メモリ35が使用される場合であって、脱着型メモリ35に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット1の内蔵メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号よりも大きいとき(Case6)、図13の例においては、予め学習情報が記録された脱着型メモリ35が使用される場合であって、脱着型メモリ35に記録されているデータを蓄積したプログラムのバージョン番号が、ロボット1の内蔵メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号よりも小さいとき(Case7)に分類される。
図14は、上述した条件をまとめたものである。各列毎の最上段には、ロボット1の内部メモリ10Cに記録されているデータを蓄積したプログラムのバージョン番号(ver0乃至4)が記されており、各行の最左列には、脱着型メモリ35に記録されたプログラムのバージョン番号(ver1乃至5)であり、さらに、左から2列目の「1st」は、初めて使用する脱着型メモリ35であることを示し、「Used」とは、予め学習情報が記録された脱着型メモリ35であることを示している。図14で示されるように、Case3で示される状態のとき、すなわち、内蔵メモリ10Cに記録されている学習情報を記録したプログラムのバージョンよりも上位のバージョンのプログラムが記録された脱着型メモリ35が最初に使用される場合にのみ、学習情報が継承される。結果として、従来のように、プログラムのバージョンアップをしつつも、それまでの学習情報を保持することが可能となり、バージョンアップをしても、最初から学習させていく必要がなくなる。
以上においては、例えば、図15Aで示されるように、ロボット1において、図3で示される機能を実現させるための脱着型メモリ35に記録されているプログラム171が、蓄積する学習情報171aを内部メモリ10Cに学習情報172として記憶させ、図15Bで示されるように、プログラム171よりもバージョン番号が上位のプログラム171’を実行させる際、内部メモリ10Cに記憶されている学習情報172を読み出して実行させる場合について説明してきたが、例えば、図15Cで示されるような構成に対しても用いることができる。
すなわち、図15Cにおいては、プログラム171とは、全く異なるプログラム181をロボット1において実行させる場合にも、プログラム171により蓄積されたが学習情報172を読み込んで使用できるような場合にも対応させることができる。
ただし、この場合、プログラム181を実行した際に実現される継承管理部55は、プログラム181により蓄積された学習情報がプログラム171または171’などで使用できる保証が無いため、終了処理において、内蔵メモリ10Cには学習情報を記録させず、脱着型メモリ35にのみ記録させるようにする。
図16のフローチャートは、プログラム181に対応した終了処理を示している。尚、図16におけるフローチャートのステップS51,S53乃至S57の処理は、図7のフローチャートにおけるステップS31乃至36と同一であるのでその説明は省略する。
ステップS52において、継承管理部55は、プログラム181の処理により取得された学習情報を内蔵メモリ10Cに書き込むことが許可されているか否かを確認し許可されている場合、すなわち、プログラム181での処理により取得された学習情報を内蔵メモリ10Cに記録することができる場合、その処理は、ステップS53に進む。すなわち、通常のプログラムは、内蔵メモリ10Cに書き込むことができると判定される。
ステップS52において、プログラム181の処理により取得された学習情報を内蔵メモリ10Cに書き込むことが許可されていないと判定された場合、ステップS58において、脱着型メモリ35に学習情報を記録させる。
以上のような構成により、様々なプログラムであっても、それまでに学習された学習情報を利用することが可能となる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
この記録媒体は、図2に示すようにロボット1に予め組み込まれた状態でユーザに提供される、プログラムが記録されてい内蔵メモリ10Cだけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク31(フレキシブルディスクを含む)、光ディスク32(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク33(MD(Mini-Disc)(登録商標)を含む)、もしくは半導体メモリ34(Memory Stickを含む)などよりなるパッケージメディアにより構成される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
3,3A乃至3D 脚部ユニット, 4 頭部ユニット, 5 尻尾部ユニット, 10 コントローラ, 10A CPU, 10B メモリ, 10C 内部メモリ, 12 バッテリセンサ, 13 熱センサ, 14 内部センサ, 15 マイク, 16 CCDカメラ, 17 タッチセンサ, 18 スピーカ, 19 LED, 51 モデル記憶部, 52 行動決定機構部, 53 姿勢遷移機構部, 54 制御機構部, 55 継承管理部, 55A 比較部