(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044691
(43)【公開日】2024-04-02
(54)【発明の名称】機器の制御装置、機器、機器の制御方法及びプログラム
(51)【国際特許分類】
A63H 11/00 20060101AFI20240326BHJP
【FI】
A63H11/00 Z
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022150384
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】長谷川 浩一
(72)【発明者】
【氏名】外山 千寿
【テーマコード(参考)】
2C150
【Fターム(参考)】
2C150AA05
2C150CA02
2C150ED42
2C150EF16
2C150EF23
2C150EF25
(57)【要約】
【課題】疑似的な感情を表現するための制御の内容の決定において、その処理負担を軽減させる。
【解決手段】機器の制御装置100は、機器に作用する外部刺激を表す信号を取得し、信号に基づいて機器の疑似的な感情を設定し、設定された疑似的な感情に基づいて、予め記憶部120に記憶されている、機器の音声出力部230又は駆動部220に対する制御の内容を調整するように制御する、制御部110を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
機器に作用する外部刺激を表す信号を取得し、
前記信号に基づいて前記機器の疑似的な感情を設定し、
前記設定された疑似的な感情に基づいて、予め記憶部に記憶されている、前記機器の音声出力部又は駆動部に対する制御の内容を調整するように制御する、
制御部を備える、
ことを特徴とする機器の制御装置。
【請求項2】
前記制御部は、
前記機器の疑似的な感情に基づいて、前記記憶部に前記制御の内容として記憶されている効果音データで前記音声出力部から出力される効果音の、出力時間、トーン、又は、周波数の少なくとも何れかを調整するように制御する、
ことを特徴とする請求項1に記載の機器の制御装置。
【請求項3】
前記制御部は、
前記信号が取得されたときに前記機器の疑似的な感情を変化させるために用いる感情変化パラメータを取得し、
前記機器の疑似的な感情を表す感情パラメータを、前記取得された感情変化パラメータに応じて設定し、
前記設定された感情パラメータに基づいて、前記効果音の、出力時間、トーン、又は、周波数の少なくとも何れかを調整するように制御する、
ことを特徴とする請求項2に記載の機器の制御装置。
【請求項4】
前記制御部は、
所定のタイミングで、前記記憶部に記憶されている前記感情変化パラメータを前記取得された信号に基づいて更新し、
前記更新された感情変化パラメータに応じて前記感情パラメータを設定し、
前記設定された感情パラメータ及び前記更新された感情変化パラメータに応じて、前記効果音の、出力時間、トーン、又は、周波数の少なくとも何れかを調整するように制御する、
ことを特徴とする請求項3に記載の機器の制御装置。
【請求項5】
前記制御部は、
前記機器の疑似的な感情に基づいて、前記記憶部に前記制御の内容として記憶されているモーションデータで前記駆動部が表現する動作の、速度、又は、振幅の少なくとも何れかを調整するように制御する、
ことを特徴とする請求項1に記載の機器の制御装置。
【請求項6】
前記制御部は、
前記信号が取得されたときに前記機器の疑似的な感情を変化させるために用いる感情変化パラメータを取得し、
前記機器の疑似的な感情を表す感情パラメータを、前記取得された感情変化パラメータに応じて設定し、
前記設定された感情パラメータに基づいて、前記動作の、速度、又は、振幅の少なくとも何れかを調整するように制御する、
ことを特徴とする請求項5に記載の機器の制御装置。
【請求項7】
前記制御部は、
所定のタイミングで、前記記憶部に記憶されている前記感情変化パラメータを前記取得された信号に基づいて更新し、
前記更新された感情変化パラメータに応じて前記感情パラメータを設定し、
前記設定された感情パラメータ及び前記更新された感情変化パラメータに応じて、前記動作の、速度、又は、振幅の少なくとも何れかを調整するように制御する、
ことを特徴とする請求項6に記載の機器の制御装置。
【請求項8】
請求項1から7の何れか1項に記載の機器の制御装置を備えた機器。
【請求項9】
制御部を備える制御装置の前記制御部が、
機器に作用する外部刺激を表す信号を取得し、
前記信号に基づいて前記機器の疑似的な感情を設定し、
前記設定された疑似的な感情に基づいて、予め記憶部に記憶されている、前記機器の音声出力部又は駆動部に対する制御の内容を調整するように制御する、
機器の制御方法。
【請求項10】
制御装置のコンピュータに、
機器に作用する外部刺激を表す信号を取得し、
前記信号に基づいて前記機器の疑似的な感情を設定し、
前記設定された疑似的な感情に基づいて、予め記憶部に記憶されている、前記機器の音声出力部又は駆動部に対する制御の内容を調整するように制御する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器の制御装置、機器、機器の制御方法及びプログラムに関する。
【背景技術】
【0002】
ロボット等の機器を、友達やペットのような親しみのある存在に近づけるように、その動作を制御する技術が知られている。例えば、特許文献1には、動物らしく行動するロボットの行動決定に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の特許文献1には外的要因や内的要因に基づいて複数の行動から所望の行動を選択することが記載されている。しかしながらこのような技術の場合、選択対象となる行動に対応する制御データの種類が多く、また、外的要因や内的要因からその行動の選択に至るまでの処理行程が複雑であることが問題だった。
【0005】
そこで、本発明はこのような事情に鑑みてなされたものであって、疑似的な感情を表現するための制御の内容の決定において、その処理負担を軽減させることができる機器の制御装置、機器、機器の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係る機器の制御装置の一様態は、
機器に作用する外部刺激を表す信号を取得し、
前記信号に基づいて前記機器の疑似的な感情を設定し、
前記設定された疑似的な感情に基づいて、予め記憶部に記憶されている、前記機器の音声出力部又は駆動部に対する制御の内容を調整するように制御する、
制御部を備える。
【発明の効果】
【0007】
本発明によれば、疑似的な感情を表現するための制御の内容の決定において、その処理負担を軽減させることができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態1に係るロボットの外観を示す図である。
【
図2】実施形態1に係るロボットの側面から見た断面図である。
【
図3】実施形態1に係るロボットの筐体を説明する図である。
【
図4】実施形態1に係るロボットの機能構成を示すブロック図である。
【
図5】実施形態1に係る感情マップの一例を説明する図である。
【
図6】実施形態1に係る性格値レーダーチャートの一例を説明する図である。
【
図7】実施形態1に係る制御内容テーブルの一例を説明する図である。
【
図8】実施形態1に係るロボット制御処理の流れを示すフローチャートである。
【
図9】実施形態1に係る制御データ変更再生処理の流れを示すフローチャートである。
【
図10】実施形態1に係る効果音再生スレッドの処理の流れを示すフローチャートである。
【
図11】実施形態1に係るモーション再生スレッドの処理の流れを示すフローチャートである。
【
図12】実施形態2に係る効果音データの一例を説明する図である。
【
図13】実施形態2に係る効果音伸長スレッドによって効果音が伸長される様子の一例を説明する図である。
【
図14】実施形態2に係る異常検出スレッドの処理の流れを示すフローチャートである。
【
図15】実施形態2に係る効果音伸長スレッドの処理の流れを示すフローチャートである。
【
図16】変形例に係る機器の制御装置及びロボットの機能構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0010】
(実施形態1)
実施形態1に係る機器の制御装置を
図1に示すロボット200に適用した実施形態について、図面を参照して説明する。実施形態に係るロボット200は、小型の動物を模したペットロボットである。ロボット200は、
図1に示すように、目を模した装飾部品202及びふさふさの毛203を備えた外装201に覆われている。また、外装201の中には、ロボット200の筐体207が収納されている。
図2に示すように、ロボット200の筐体207は、頭部204、連結部205及び胴体部206で構成され、頭部204と胴体部206とが連結部205で連結されている。
【0011】
胴体部206は、
図2に示すように、前後方向に延びている。そして、胴体部206は、ロボット200が置かれている床やテーブル等の載置面に、外装201を介して接触する。また、
図2に示すように、胴体部206の前端部にひねりモータ221が備えられており、頭部204が連結部205を介して胴体部206の前端部に連結されている。そして、連結部205には、上下モータ222が備えられている。なお、
図2では、ひねりモータ221は胴体部206に備えられているが、連結部205に備えられていてもよいし、頭部204に備えられていてもよい。
【0012】
連結部205は、連結部205を通り胴体部206の前後方向に延びる第1回転軸を中心として(ひねりモータ221により)回転自在に、胴体部206と頭部204とを連結している。ひねりモータ221は、頭部204を、胴体部206に対して、第1回転軸を中心として時計回り(右回り)に正転角度範囲内で回転(正転)させたり、反時計回り(左回り)に逆転角度範囲内で回転(逆転)させたりする。なお、この説明における時計回りは、胴体部206から頭部204の方向を見た時の時計回りである。また、時計回りの回転を「右方へのひねり回転」、反時計回りの回転を「左方へのひねり回転」とも呼ぶことにする。右方(右回り)又は左方(左回り)にひねり回転させる角度の最大値は任意であるが、
図3に示すように、頭部204を右方へも左方へもひねっていない状態における頭部204の角度をひねり基準角度という。
【0013】
また、連結部205は、連結部205を通り胴体部206の幅方向に延びる第2回転軸を中心として(上下モータ222により)回転自在に、胴体部206と頭部204とを連結する。上下モータ222は、頭部204を、第2回転軸を中心として上方に正転角度範囲内で回転(正転)させたり、下方に逆転角度範囲内で回転(逆転)させたりする。上方又は下方に回転させる角度の最大値は任意であるが、
図3に示すように、頭部204を上方にも下方にも回転させていない状態における頭部204の角度を上下基準角度という。
【0014】
頭部204は、第2回転軸を中心とする上下の回転によって上下基準角度又は上下基準角度より上方に回転している場合は、ロボット200が置かれている床やテーブル等の載置面に、外装201を介して接触可能である。なお、
図2では、第1回転軸と第2回転軸とが互いに直交している例が示されているが、第1及び第2回転軸は互いに直交していなくてもよい。
【0015】
また、ロボット200は、
図2に示すように、頭部204にタッチセンサ211を備え、ユーザが頭部204を撫でたり叩いたりしたことを、タッチセンサ211により検出することができる。また、胴体部206にもタッチセンサ211を備え、ユーザが胴体部206を撫でたり叩いたりしたことも、タッチセンサ211により検出することができる。
【0016】
また、ロボット200は、胴体部206に加速度センサ212を備え、ロボット200の姿勢(向き)の検出や、ユーザによって持ち上げられたり、向きを変えられたり、投げられたりしたことを検出することができる。また、ロボット200は、胴体部206にジャイロセンサ214を備え、ロボット200が転がったり回転したりしていることを検出することができる。
【0017】
また、ロボット200は、胴体部206にマイクロフォン213を備え、外部の音を検出することができる。さらに、ロボット200は、胴体部206にスピーカ231を備え、スピーカ231を用いてロボット200の鳴き声(効果音)を発することができる。
【0018】
なお、本実施形態では加速度センサ212、ジャイロセンサ214、マイクロフォン213及びスピーカ231は胴体部206に備えられているが、これらの全て又は一部が頭部204に備えられていてもよい。また、胴体部206に備えられた加速度センサ212、ジャイロセンサ214、マイクロフォン213及びスピーカ231に加えて、これらの全て又は一部を頭部204にも備えるようにしてもよい。また、タッチセンサ211は、頭部204及び胴体部206にそれぞれ備えられているが、頭部204又は胴体部206のいずれか片方のみに備えられていてもよい。またこれらはいずれも複数備えられていてもよい。
【0019】
次に、ロボット200の機能構成について説明する。ロボット200は、
図4に示すように、機器の制御装置100と、外部刺激検出部210と、駆動部220と、音声出力部230と、操作入力部240と、を備える。そして、機器の制御装置100は、制御部110と、記憶部120と、を備える。
図4では、機器の制御装置100と、外部刺激検出部210、駆動部220、音声出力部230及び操作入力部240とが、バスラインBLを介して接続されているが、これは一例である。機器の制御装置100と、外部刺激検出部210、駆動部220、音声出力部230及び操作入力部240とは、USB(Universal Serial Bus)ケーブル等の有線インタフェースや、Bluetooth(登録商標)等の無線インタフェースで接続されていてもよい。また、制御部110と記憶部120とは、バスラインBLを介して接続されていてもよい。
【0020】
機器の制御装置100は、制御部110及び記憶部120により、ロボット200の動作を制御する。
【0021】
制御部110は、例えば、CPU(Central Processing Unit)等で構成され、記憶部120に記憶されたプログラムにより、後述する各種処理(ロボット制御処理等)を実行する。なお、制御部110は、複数の処理を並行して実行するマルチスレッド機能に対応しているため、後述する各種処理(ロボット制御処理、効果音再生スレッド、モーション再生スレッド等)を並行に実行することができる。また、制御部110は、クロック機能やタイマー機能も備えており、日時等を計時することができる。
【0022】
記憶部120は、ROM(Read Only Memory)、フラッシュメモリ、RAM(Random Access Memory)等で構成される。ROMには、制御部110のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが、記憶されている。フラッシュメモリは書き込み可能な不揮発性のメモリであり、電源オフ後も保存させておきたいデータが記憶される。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【0023】
外部刺激検出部210は、前述したタッチセンサ211、加速度センサ212、ジャイロセンサ214、及びマイクロフォン213を備える。制御部110は、外部刺激検出部210が備える各種センサが検出した検出値(外部刺激データ)を、ロボット200に作用する外部刺激を表す信号として取得する。なお、外部刺激検出部210は、タッチセンサ211、加速度センサ212、ジャイロセンサ214、マイクロフォン213以外のセンサを備えてもよい。外部刺激検出部210が備えるセンサの種類を増やすことにより、制御部110が取得できる外部刺激の種類を増やすことができる。
【0024】
タッチセンサ211は、何らかの物体が接触したことを検出する。タッチセンサ211は、例えば圧力センサや静電容量センサにより構成される。タッチセンサ211が検出した検出値は、接触の強さを示す。また、タッチセンサ211は、指向性のある接触検知が可能であり、ロボット200の胴体部206の前後方向(X軸方向)からの接触、幅(左右)方向(Y軸方向)からの接触及び上下方向(Z軸方向)からの接触から成る3軸方向の接触の強さを検出する。よって、タッチセンサ211の検出値は、X軸方向からの接触の強さ、Y軸方向からの接触の強さ、及びZ軸方向からの接触の強さの値からなる3次元のデータである。制御部110は、タッチセンサ211からの検出値に基づいて、ユーザによってロボット200が撫でられていることや、叩かれたりしていること等を検出することができる。
【0025】
加速度センサ212は、ロボット200の胴体部206の前後方向(X軸方向)、幅(左右)方向(Y軸方向)及び上下方向(Z軸方向)から成る3軸方向の加速度を検出する。よって、加速度センサ212が検出する加速度の値は、X軸方向の加速度、Y軸方向の加速度、及びZ軸方向の加速度の値からなる3次元のデータである。加速度センサ212は、ロボット200が静止しているときには重力加速度を検出するので、制御部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の現在の姿勢を検出することができる。また、例えばユーザがロボット200を持ち上げたり投げたりした場合には、加速度センサ212は、重力加速度に加えてロボット200の移動に伴う加速度を検出する。したがって、制御部110は、加速度センサ212が検出した検出値から重力加速度の成分を除去することにより、ロボット200の動きを検出することができる。
【0026】
ジャイロセンサ214は、ロボット200の胴体部に回転が加えられたときの角速度を検出する。具体的には、ジャイロセンサ214は、胴体部206の前後方向(X軸方向)を軸とした回転、幅(左右)方向(Y軸方向)を軸とした回転、及び上下方向(Z軸方向)を軸とした回転から成る3軸回転の角速度を検出する。よって、ジャイロセンサ214が検出する角速度の値は、X軸回転の角速度、Y軸回転の角速度、及びZ軸回転の角速度の値からなる3次元のデータである。制御部110は、加速度センサ212が検出した検出値とジャイロセンサ214が検出した検出値とを組み合わせることで、ロボット200の動きをより精度よく検出することができる。
【0027】
なお、タッチセンサ211と加速度センサ212とジャイロセンサ214とは同期が取れており、同じタイミングで接触の強さ、加速度、角速度をそれぞれ検出し、検出値を制御部110に出力している。具体的には、タッチセンサ211と加速度センサ212とジャイロセンサ214とは、例えば0.25秒毎に、同じタイミングで接触の強さ、加速度、角速度を検出している。
【0028】
マイクロフォン213は、ロボット200の周囲の音を検出する。制御部110は、マイクロフォン213が検出した音の成分に基づき、例えばユーザがロボット200に呼びかけていることや、手を叩いていること等を検出することができる。
【0029】
駆動部220は、ひねりモータ221及び上下モータ222を備える。駆動部220は、制御部110によって駆動される。その結果、ロボット200は、例えば頭部204を持ち上げたり(第2回転軸を中心として上方に回転させたり)、横にひねったり(第1回転軸を中心として右方又は左方にひねり回転させたり)するような動作を表現することができる。これらの動作を表現するために駆動部220を駆動するためのモーションデータは、後述する制御内容テーブル124に記録されている。
【0030】
音声出力部230は、スピーカ231を備え、制御部110が音のデータを音声出力部230に入力することにより、スピーカ231から音が出力される。例えば、制御部110がロボット200の鳴き声のデータを音声出力部230に入力することにより、ロボット200は疑似的な鳴き声を発する。この鳴き声のデータも効果音データとして、制御内容テーブル124に記録されている。
【0031】
操作入力部240は、例えば、操作ボタン、ボリュームつまみ等から構成される。操作入力部240は、例えば、電源のオン/オフ、出力音のボリューム調整等のユーザ操作を受け付けるためのインタフェースである。
【0032】
次に、機器の制御装置100の記憶部120に記憶されるデータのうち、本実施形態に特徴的なデータである、感情データ121、感情変化データ122、成長日数データ123、制御内容テーブル124について、順に説明する。
【0033】
感情データ121は、ロボット200に疑似的な感情を持たせるためのデータであり、感情マップ300上の座標を示すデータ(X,Y)である。感情マップ300は
図5に示すように、X軸311として安心度(不安度)の軸、Y軸312として興奮度(無気力度)の軸を持つ2次元の座標系で表される。感情マップ上の原点310(0,0)が通常時の感情を表す。そして、X座標の値(X値)が正でその絶対値が大きくなるほど安心度が高く、Y座標の値(Y値)が正でその絶対値が大きくなるほど興奮度が高い感情を表す。また、X値が負でその絶対値が大きくなるほど不安度が高く、Y値が負でその絶対値が大きくなるほど無気力度が高い感情を表す。
【0034】
感情データ121は、互いに異なる複数(本実施形態では4つ)の疑似的な感情を表すX値(安心度、不安度)とY値(興奮度、無気力度)の2つの値を持ち、X値とY値とで表される感情マップ300上の点が、ロボット200の疑似的な感情を表す。感情データ121の初期値は(0,0)である。感情データ121は、ロボット200の疑似的な感情を表すパラメータなので、感情パラメータとも呼ばれる。なお、
図5では感情マップ300が2次元の座標系で表されているが、感情マップ300の次元数は任意である。感情マップ300を1次元で規定し、感情データ121として1つの値が設定されるようにしてもよい。また、他の軸を加えて3次元以上の座標系で感情マップ300を規定し、感情データ121として感情マップ300の次元数の個数の値が設定されるようにしてもよい。
【0035】
本実施形態においては、感情マップ300の初期値としてのサイズは、
図5の枠301に示すように、X値もY値も最大値が100、最小値が-100となっている。そして、第1期間の間、ロボット200の疑似的な成長日数が1日増える度に、感情マップ300の最大値、最小値ともに2ずつ拡大されていく。ここで第1期間とは、ロボット200が疑似的に成長する期間であり、ロボット200の疑似的な生誕から例えば50日の期間である。なお、ロボット200の疑似的な生誕とは、ロボット200の工場出荷後のユーザによる初回の起動時である。成長日数が25日になると、
図5の枠302に示すように、X値もY値も最大値が150、最小値が-150となる。そして、第1期間(この例では50日)すると、それにより、ロボット200の疑似的な成長が完了したとして、
図5の枠303に示すように、X値もY値も最大値が200、最小値が-200となって、感情マップ300のサイズが固定される。
【0036】
感情変化データ122は、感情データ121のX値及びY値の各々を増減させる変化量を設定するデータである。本実施形態では、感情データ121のXに対応する感情変化データ122として、X値を増加させるDXPと、X値を減少させるDXMとがあり、感情データ121のY値に対応する感情変化データ122として、Y値を増加させるDYPと、Y値を減少させるDYMとがある。すなわち、感情変化データ122は、以下の4つの変数からなる。これらの変数はロボット200の疑似的な感情を変化させるパラメータなので、感情変化パラメータとも呼ばれる。
DXP:安心し易さ(感情マップでのX値のプラス方向への変化し易さ)
DXM:不安になり易さ(感情マップでのX値のマイナス方向への変化し易さ)
DYP:興奮し易さ(感情マップでのY値のプラス方向への変化し易さ)
DYM:無気力になり易さ(感情マップでのY値のマイナス方向への変化し易さ)
【0037】
本実施形態では、一例として、これらの変数の初期値をいずれも10とし、後述するロボット制御処理中の感情変化データを学習する処理により、最大20まで増加するものとしている。この学習処理により、感情変化データ122、すなわち感情の変化度合が変化するので、ロボット200は、ユーザによるロボット200との接し方に応じて、様々な性格を持つことになる。つまり、ロボット200の性格は、ユーザの接し方により、個々に異なって形成されることになる。
【0038】
そこで、本実施形態では、各感情変化データ122から10を減算することにより、各性格データ(性格値)を導出する。すなわち、安心し易さを示すDXPから10引いた値を性格値(陽気)とし、不安になり易さを示すDXMから10引いた値を性格値(シャイ)とし、興奮し易さを示すDYPから10引いた値を性格値(活発)とし、無気力になり易さを示すDYMから10引いた値を性格値(甘えん坊)とする。これにより、例えば、
図6に示すように、性格値(陽気)を軸411に、性格値(活発)を軸412に、性格値(シャイ)を軸413に、性格値(甘えん坊)を軸414に、それぞれプロットすることで、性格値レーダーチャート400を生成することができる。このように、感情変化パラメータ(感情変化データ122)の値は、ロボット200の擬似的な性格を表しているともいえる。
【0039】
さらに、本実施形態では、後述するロボット制御処理の中で取得される慣れ度(外部刺激に対してどの程度慣れてしまったかという慣れの程度を示す値)によっても感情変化データ122、すなわち感情の変化度合が変化するので、ロボット200は、過去のユーザの接し方も考慮に入れた動作をすることが可能となる。
【0040】
成長日数データ123は、初期値が1であり、1日経過する度に1ずつ加算されていく。成長日数データ123により、ロボット200の疑似的な成長日数(疑似的な生誕からの日数)が表されることになる。ここでは、成長日数データ123で表される成長日数の期間を、第2期間と呼ぶことにする。
【0041】
制御内容テーブル124には、
図7に示すように、制御条件と制御データとが対応して記憶されている。制御部110は、制御条件(例えば、何らかの外部刺激が検出された)が満たされると、対応する制御データ(駆動部220で動作を表現するためのモーションデータ及び、音声出力部230から効果音を出力するための効果音データ)に基づき、駆動部220及び音声出力部230を制御する。
【0042】
モーションデータは、
図7に示すように、駆動部220を制御する一連のシーケンスデータ(「時間(ミリ秒):上下モータ222の回転角度(度):ひねりモータ221の回転角度(度)」の並び)である。例えば、体を撫でられたら、最初(0秒時)は上下モータ222及びひねりモータ221の回転角度を0度(上下基準角度及びひねり基準角度)にし、0.5秒時に上下モータ222の回転角度が60度になるように頭部204を上げ、1秒時にひねりモータ221の回転角度が60度になるように頭部204をひねり、というように制御部110は駆動部220を制御する。
【0043】
また、効果音データは、
図7では、わかりやすく示すために、各効果音データを説明する文が記載されているが、実際にはこれらの文で説明されている効果音データ自身(サンプリングされた音のデータ)が、効果音データとして制御内容テーブル124に格納されている。また、効果音データには語尾位置を示す値(例えば「語尾:30%」)も記憶されている。この値は効果音データ全体の長さの先頭からの語尾位置を百分率で示したものであり、後述する制御データ変更再生処理において効果音のトーンを変更(語尾の周波数を変更)する際に使用される。
【0044】
なお、
図7に示す制御内容テーブルでは、制御条件に感情(感情マップ300上の座標で表される)に関する条件が含まれていないが、制御条件に感情に関する条件を含めることにより、感情に応じて制御データを変化させてもよい。
【0045】
次に、
図8に示すフローチャートを参照しながら、機器の制御装置100の制御部110が実行するロボット制御処理について説明する。ロボット制御処理は、機器の制御装置100が、外部刺激検出部210からの検出値等に基づいて、ロボット200の動作や鳴き声を制御する処理である。ユーザがロボット200の電源を入れると、ロボット制御処理が開始される。
【0046】
まず、制御部110は、感情データ121、感情変化データ122、成長日数データ123等の各種データを初期化する(ステップS101)。なお、ロボット200の起動の2回目以降は、ステップS101において、ロボット200の電源が前回切られた時点での各値を設定するようにしてもよい。これは、前回電源を切る操作が行われた時に制御部110が各データの値を記憶部120の不揮発メモリ(フラッシュメモリ等)に保存し、その後、電源が入れられた時に、当該保存した値を各データの値に設定することで実現可能である。
【0047】
次に、制御部110は、外部刺激検出部210が検出した外部刺激を取得する(ステップS102)。そして制御部110は、制御内容テーブル124に規定されている制御条件のうち、ステップS102で取得した外部刺激により満たされるものがあるか否かを判定する(ステップS103)。
【0048】
制御内容テーブル124に規定されている制御条件のいずれかが、取得した外部刺激により満たされるなら(ステップS103;Yes)、制御部110は、制御内容テーブル124を参照して、当該取得した外部刺激により満たされる制御条件に対応した制御データを取得する(ステップS104)。
【0049】
そして、制御部110は、ステップS102で取得した外部刺激や、それまでに取得した外部刺激の履歴の情報に基づいて、慣れ度を取得する(ステップS105)。慣れ度とは、ロボット200が同じ外部刺激を繰返し受けたときに、その刺激に慣れてしまって感情があまり変化しないようになる現象を生じさせるために用いるパラメータであり、本実施形態では1以上10以下の値となる。慣れ度の取得方法は任意だが、制御部110は、例えば特開2021-153680号公報に開示されている方法で、慣れ度を取得することができる。
【0050】
続いて、制御部110は、ステップS102で取得した外部刺激に応じて感情変化データ122を取得し、慣れ度に基づいて感情変化データ122を修正する(ステップS106)。具体的には、例えば、外部刺激として頭部204のタッチセンサ211により頭部204が撫でられたことを検出すると、ロボット200は疑似的な安心感を得るので、制御部110は、感情データ121のX値に加算する感情変化データ122としてDXPを取得する。そして、感情変化データ122のDXPを慣れ度の値で割る。これにより、慣れ度の値が大きいほど、感情変化データ122の値が小さくなり、疑似的な感情が変化しにくくなる。
【0051】
そして、制御部110は、ステップS106で取得(及び修正)された感情変化データ122に応じて感情データ121を設定する(ステップS107)。具体的には、例えば、ステップS106で感情変化データ122としてDXPが取得されていたなら、制御部110は、感情データ121のX値に感情変化データ122の修正後のDXPを加算する。
【0052】
ステップS106及びステップS107において、外部刺激の各々に対して、どのような感情変化データ122が取得(及び修正)されて、感情データ121が設定されるかは任意に設定可能であるが、ここでは、以下に一例を示す。
【0053】
頭部204を撫でられる(安心する):X=X+DXP/慣れ度
頭部204を叩かれる(不安になる):X=X-DXM/慣れ度
(これらの外部刺激は頭部204のタッチセンサ211で検出可能)
胴体部206を撫でられる(興奮する):Y=Y+DYP/慣れ度
胴体部206を叩かれる(無気力になる):Y=Y-DYM/慣れ度
(これらの外部刺激は胴体部206のタッチセンサ211で検出可能)
頭を上にして抱かれる(喜ぶ):X=X+DXP/慣れ度、及びY=Y+DYP/慣れ度
頭を下にして宙づりにされる(悲しむ):X=X-DXM/慣れ度、及びY=Y-DYM/慣れ度
(これらの外部刺激はタッチセンサ211、加速度センサ212及びジャイロセンサ214で検出可能)
優しい声で呼びかけられる(平穏になる):X=X+DXP/慣れ度、及びY=Y-DYM/慣れ度
大きな声で怒鳴られる(イライラする):X=X-DXM/慣れ度、及びY=Y+DYP/慣れ度
(これらの外部刺激はマイクロフォン213で検出可能)
【0054】
ただし、感情変化データ122を加算すると感情データ121の値(X値、Y値)が感情マップ300の最大値を超える場合には、感情データ121の値は感情マップ300の最大値に設定される。また、感情変化データ122を減算すると感情データ121の値が感情マップ300の最小値未満になる場合には、感情データ121の値は感情マップ300の最小値に設定される。
【0055】
そして、制御部110は、ステップS104で取得した制御データとステップS107で設定された感情データ121とを引数として、制御データ変更再生処理を実行し(ステップS108)、ステップS111に進む。制御データ変更再生処理は、ステップS107で設定された感情データ121に応じて、ステップS104で取得した制御データを調整(変更)して、ロボット200を制御する処理だが、詳細は後述する。なお、ステップS106で感情変化データ122を修正している場合、ステップS108の終了後、制御部110は、感情変化データ122を修正前の状態に戻す。
【0056】
一方、ステップS103で、取得した外部刺激により制御内容テーブル124に規定されている制御条件のいずれもが満たされないなら(ステップS103;No)、制御部110は、呼吸動作等の自発的な動作を行うか否かを判定する(ステップS109)。自発的な動作を行うか否かの判定方法は任意だが、本実施形態では、呼吸周期(例えば2秒)毎にステップS109の判定がYesになり、呼吸動作が行われるものとする。
【0057】
自発的な動作を行わないなら(ステップS109;No)、制御部110はステップS111に進む。自発的な動作を行うなら(ステップS109;Yes)、制御部110は、自発的な動作(例えば呼吸動作)を実行し(ステップS110)、ステップS111に進む。
【0058】
この自発的な動作の制御データも(例えば
図7の「制御条件」の「呼吸周期が経過した」に示すように)制御内容テーブル124に記憶されている。
図8では省略したが、ステップS110においても、外部刺激が有ったときの処理(例えばステップS105~S108の処理)と同様に、感情データに基づいて制御データを調整(変更)してもよい。
【0059】
ステップS111では、制御部110は、クロック機能により、日付が変わったか否かを判定する。日付が変わっていないなら(ステップS111;No)、制御部110はステップS102に戻る。
【0060】
日付が変わったなら(ステップS111;Yes)、制御部110は、第1期間中であるか否かを判定する(ステップS112)。第1期間を、ロボット200の疑似的な生誕(例えば購入後のユーザによる初回の起動時)から例えば50日の期間とすると、制御部110は、成長日数データ123が50以下なら第1期間中であると判定する。第1期間中でないなら(ステップS112;No)、制御部110は、ステップS115に進む。
【0061】
第1期間中なら(ステップS112;Yes)、制御部110は、感情変化データ122の学習を行う(ステップS113)。感情変化データ122の学習とは、具体的には、その日のステップS107において、感情データ121のX値が1度でも感情マップ300の最大値に設定されたなら感情変化データ122のDXPに1を加算し、感情データ121のY値が1度でも感情マップ300の最大値に設定されたなら感情変化データ122のDYPに1を加算し、感情データ121のX値が1度でも感情マップ300の最小値に設定されたなら感情変化データ122のDXMに1を加算し、感情データ121のY値が1度でも感情マップ300の最小値に設定されたなら感情変化データ122のDYMに1を加算することによって、感情変化データ122を更新する処理のことである。
【0062】
ただし、感情変化データ122の各値が大きくなりすぎると、感情データ121の1回の変化量が大きくなりすぎるので、感情変化データ122の各値は例えば20を最大値とし、それ以下に制限する。また、ここでは、感情変化データ122のいずれに対しても1を加算することとしたが、加算する値は1に限定されない。例えば、感情データ121の各値が感情マップ300の最大値又は最小値に設定された回数をカウントして、その回数が多い場合には、感情変化データ122に加算する数値を増やすようにしてもよい。
【0063】
図8に戻り、次に、制御部110は感情マップ300を拡大する(ステップS114)。感情マップの拡大とは、具体的には、制御部110が感情マップ300を最大値、最小値ともに、2だけ拡大する処理である。ただし、この拡大する数値「2」はあくまでも一例であり、3以上拡大してもよいし、1だけ拡大してもよい。また感情マップ300の軸毎、また最大値と最小値とで、拡大する数値が異なっていてもよい。
【0064】
また、
図8では、感情変化データ122の学習及び感情マップ300の拡大は、制御部110がステップS111で日付が変わったのを判定してから行われるものとしているが、基準時刻(例えば午後9時)になったことを判定してから行われるようにしてもよい。また、ステップS111での判定は、実際の日付で判定するのではなく、ロボット200が電源オンになっている時間を制御部110のタイマー機能で累計した値に基づいて判定してもよい。例えば、電源オンの累計時間が24の倍数の時間になる毎に、ロボット200が1日成長したとみなして、感情変化データ122の学習及び感情マップ300の拡大が行われるようにしてもよい。
【0065】
図8に戻り、そして、制御部110は、成長日数データ123に1を加算し(ステップS115)、感情データをX値、Y値ともに0に初期化して(ステップS116)、ステップS102に戻る。なお、ロボット200が前日の疑似的な感情を翌日にも持ち越した方が良い場合には、制御部110は、ステップS116の処理を行わずにステップS102に戻る。
【0066】
次に、上述のロボット制御処理のステップS108において、制御データ及び感情データ121を引数として呼び出される制御データ変更再生処理について、
図9を参照して説明する。
【0067】
まず、制御部110は、制御データに効果音データが含まれるか否かを判定する(ステップS201)。効果音データが含まれないなら(ステップS201;No)、ステップS205に進む。
【0068】
効果音データが含まれるなら(ステップS201;Yes)、制御部110は、感情データ121に基づいて、周波数変更度と語尾変更度を設定する(ステップS202)。具体的には、周波数変更度は感情データ121のXの値を10で割った値に、語尾変更度は感情データ121のYの値を10で割った値に設定する。つまり、周波数変更度及び語尾変更度ともに、-30以上30以下の値に設定される。
【0069】
次に、制御部110は、効果音データから語尾位置を取得する(ステップS203)。
図7に示すように、制御内容テーブル124には、効果音データ毎に語尾位置も記憶されているので、制御部110は、効果音データから語尾位置を取得することができる。
【0070】
そして、制御部110は、効果音データ、語尾位置、周波数変更度、語尾変更度を引数として、後述する効果音再生スレッドを起動し(ステップS204)、ステップS205に進む。効果音再生スレッドの詳細は後述するが、このスレッドでは、感情データに基づいて調整(変更)された効果音データにより音声出力部230から効果音が出力される。
【0071】
ステップS205では、制御部110は、制御データにモーションデータが含まれるか否かを判定する。制御データにモーションデータが含まれていないなら(ステップS205;No)、制御部110は制御データ変更再生処理を終了する。
【0072】
制御データにモーションデータが含まれているなら(ステップS205;Yes)、制御部110は、感情データ121に基づいて、速度変更度と振幅変更度を設定する(ステップS206)。具体的には、速度変更度は感情データ121のXの値を10で割った値に、振幅変更度は感情データ121のYの値を10で割った値に設定する。つまり、速度変更度及び振幅変更度ともに、-30以上30以下の値に設定される。
【0073】
そして、制御部110は、モーションデータ、速度変更度、振幅変更度を引数として、後述するモーション再生スレッドを起動し(ステップS207)、制御データ変更再生処理を終了する。モーション再生スレッドの詳細は後述するが、このスレッドでは、感情データに基づいて調整(変更)されたモーションデータにより駆動部220が駆動されて、ロボット200の動作が表現される。
【0074】
次に、制御データ変更再生処理(
図9)のステップS204で呼び出される効果音再生スレッドについて、
図10を参照して説明する。この処理は、呼出元の制御データ変更再生処理と並行して実行される。
【0075】
まず、制御部110は音声出力部230を用いて、効果音データの先頭から語尾位置までを、周波数変更度で変更した周波数で再生する(ステップS301)。周波数を変更する方法は任意だが、周波数変更度に応じて再生速度を変更することによって周波数を変更してもよい。例えば、周波数変更度が10だった場合、再生速度を通常の速度よりも10%速めることにより、周波数を10%上げる。
【0076】
次に、制御部110は音声出力部230を用いて、効果音データの語尾位置から最後までを、周波数変更度及び語尾変更度で変更した周波数で再生し(ステップS302)、効果音再生スレッドを終了する。周波数変更度及び語尾変更度で周波数を変更する方法は任意だが、例えば、この2つの変更度を加算した値に基づいて周波数を変更してもよいし、周波数変更度で周波数を変更してから語尾変更度でさらに周波数を変更してもよい。周波数変更度が10で、語尾変更度が5だった場合、前者の方法、すなわち、周波数変更度及び語尾変更度を加算した値に基づいて変更するなら、周波数を15%上げる(10+5=15なので)。後者の方法、すなわち、周波数変更度で周波数を変更してから語尾変更度でさらに周波数を変更するなら、周波数を15.5%上げる(1.1×1.05=1.155なので)。その際、制御部110は、再生速度を上げることによって周波数を上げてもよい。
【0077】
次に、制御データ変更再生処理(
図9)のステップS207で呼び出されるモーション再生スレッドについて、
図11を参照して説明する。この処理は、呼出元の制御データ変更再生処理と並行して実行される。
【0078】
まず、制御部110は、速度変更度と振幅変更度に基づいてモーションデータを変更する(ステップS401)。より詳細には、モーションデータの時間のデータを(100/(100+速度変更度))倍し、回転角度のデータを((100+振幅変更度)/100)倍する。例えば速度変更度が-10なら、モーションデータの時間のデータに100/(100-10)を掛けることにより速度を10%低下させ、振幅変更度が10なら、回転角度のデータに(100+10)/100を掛けることにより回転角度を10%増加さる。
【0079】
ただし、変更後のモーションデータが駆動部220の限界を超えてしまう場合には、超えない範囲で変更することにしてもよい。また、予め制御内容テーブル124中のモーションデータを、速度や振幅を+30%増加させても駆動部220の限界を超えないような値に設定しておくようにしてもよい。
【0080】
そして、制御部110は、ステップS401で変更されたモーションデータに基づいて駆動部220を駆動し(ステップS402)、モーション再生スレッドを終了する。
【0081】
以上説明した制御データ変更再生処理により、制御データは感情データ121に基づいて変化する。したがって、ロボット200の疑似的な感情(感情データ122)毎に細かく制御データを記憶しておかなくても、ロボット200は、感情に応じた行動(音声出力部230から効果音の出力、駆動部220による仕草)をすることができるようになる。すなわち、制御データが同じ効果音又は仕草であっても、その時の感情マップ300における感情の座標に基づいて、効果音なら周波数や語尾の上げ下げ(トーン)を、仕草なら動作の速度や振幅を、それぞれ調整(変更)して、感情に応じた効果音や仕草を表現することができる。したがって、制御データの量が同じなら、従来よりもロボット200を表情豊かに動作させることができる。
【0082】
なお、上述の制御データ変更再生処理では、制御データが効果音の場合、制御部110は、感情データ121に基づいて効果音の周波数や語尾の上げ下げ(トーン)を調整(変化)するように制御した。しかし、効果音について調整するのは周波数やトーンに限らない。制御部110は、感情データ121に基づいて、例えば効果音の出力時間を調整(変化)するように制御してもよい。
【0083】
また、上述の制御データ変更再生処理では、制御部110は、感情データ121に基づいて制御データを調整した。しかし、制御部110は、感情データ121に代えて、又は感情データ121に加えて、感情変化データ122に基づいて制御データを調整してもよい。
【0084】
例えば、上述のステップS202では、効果音データの変更度を、
周波数変更度=X÷10
語尾変更度=Y÷10
として設定した。しかし、制御部110は、これらの変更度を感情変化データも用いて設定してもよい。例えば、以下のように設定してもよい。
周波数変更度=(X+(DXP-10)-(DXM-10))÷10
語尾変更度=(Y+(DYP-10)-(DYM-10))÷10
【0085】
また、上述のステップS206では、モーションデータの変更度を、
速度変更度=X÷10
振幅変更度=Y÷10
として設定した。しかし、制御部110は、これらの変更度を感情変化データも用いて設定してもよい。例えば、以下のように設定してもよい。
速度変更度=(X+(DXP-10)-(DXM-10))÷10
振幅変更度=(Y+(DYP-10)-(DYM-10))÷10
【0086】
なお、感情変化データ122は10から20までの値を取るので、上述の数式では、それぞれ(DXP,DXM、DYP,DYM)を10減算することにより、値を0から10の範囲にしてから計算している。
【0087】
また、上述の例では、制御部110は、感情データ121(感情)のみに基づいて、又は、感情データ121(感情)と感情変化データ122(性格)の両方の値に基づいて、効果音データやモーションデータを調整(変更)している。しかし、制御部110は、感情変化データ122(性格)のみに基づいて効果音データやモーションデータを調整(変更)してもよい。
【0088】
(実施形態2)
ロボット200が落下等の異常を検出した場合、音声出力部から「キャー」等の効果音を出力させるようにすることが考えられる。その場合、検出した異常が継続している間はその効果音も継続して出力させた方が、その異常をユーザにより明確に通知することができる。これを可能にする実施形態2について説明する。
【0089】
実施形態2に係るロボット200の機能構成や構造は、実施形態1と同様なので、説明を省略する。ただし、実施形態2に係る制御内容テーブル124には、異常を検知した場合の制御内容も記憶される。すなわち、制御条件としては、異常が検出される外部刺激の条件が規定され、制御データとしては、当該異常が検出された場合に出力される効果音の効果音データが記憶される。そして、記憶される効果音データには
図12に示すように、リピート位置P1及びリピート位置P2の情報も記憶される。
【0090】
制御部110は、後述するように、リピート位置P1からリピート位置P2までの間にあるデータを繰返し再生することで効果音を伸長する。ただし、効果音データのP1における振幅値とP2における振幅値とは異なる場合が多いため、単純にP1からP2までの間のデータを繰り返すと、P1とP2とにおける振幅値の違いにより、繰り返すデータのつなぎ目で出力する音声の波形に段差が生じ、不自然な音になってしまう。そこで、実施形態2では、
図13に示すように、P1からP2まで順方向に再生した後は、P2からP1まで逆方向に再生するようにして、繰り返すデータのつなぎ目で波形の段差が生じることを防ぐ。
【0091】
なお、このようにP1からP2までを往復再生させることにより、繰り返すデータのつなぎ目で波形に段差が生じることは防ぐことができるが、このつなぎ目における波形の傾きが急激に変化してしまう場合もあり得る。そして、つなぎ目における波形の傾きの急激な変化が、音に悪影響を与える可能性もある。したがって、効果音データの作成者は、リピート位置P1及びP2を設定する際に、実際にP1からP2を往復再生させて、不自然さがないことを確かめてから、リピート位置P1及びP2を設定し、効果音データとして制御内容テーブル124に記憶させるようにしてもよい。
【0092】
リピート位置P1からP2までを往復再生させないで効果音を伸長させる場合(リピート位置P1からP2までを順方向に再生させることを繰り返して効果音を伸長させる場合)には、繰り返しのつなぎ目において、傾きだけでなく振幅も合わせなければ不自然な音になってしまうが、往復再生させることにより振幅は確実に合う。したがって、リピート位置P1からP2までの部分を順方向と逆方向とで往復再生させることにより、往復再生させない場合に比べて、リピート位置P1及びP2を設定する手間を格段に低減させることができる。
【0093】
また、実施形態2では、落下等の異常を検出するための処理も実行されるので、この異常検出スレッドについて
図14を参照して説明する。異常検出スレッドは、ユーザがロボット200の電源を入れると、他の処理(上述のロボット制御処理等)と並行して実行が開始される。なお、異常検出スレッドで使用する変数Tの値は、後述する効果音伸長スレッドからも参照できるようになっている。
【0094】
まず、制御部110は、異常の種類を保存する変数Tの値を初期化する(ステップS501)。初期化時の変数Tの値は異常がないことを表すことができる値であれば任意であるが、例えば0にすることが考えられる。
【0095】
そして、制御部110は、外部刺激検出部210が検出した外部刺激を取得する(ステップS502)。そして制御部110は、取得した外部刺激に基づき、異常を検出したか否かを判定する(ステップS503)。ここで、異常とは、ロボット200が落下している、転がされる、つまみ上げられる、回転させられる等である。これらの異常は、それぞれ加速度や角速度に基づいて検出可能である。
【0096】
例えば、制御部110は、加速度センサで検出した各軸の加速度の2乗和が落下閾値未満なら「ロボット200が落下している」と判定できる。また、制御部110は、ジャイロセンサで検出したY軸の角速度の値が転がり閾値を超えていれば「ロボット200が転がされている」と判定できる。また、制御部110は、加速度センサで検出したZ軸の加速度がつまみ上げ閾値を超えていれば「ロボット200がつまみ上げられている」と判定できる。また、制御部110は、ジャイロセンサで検出したZ軸の角速度が回転閾値を超えていれば「ロボット200が回転させられている」と判定できる。
【0097】
制御部110がこれらの異常を検出しなければ(ステップS503;No)、ステップS502に戻る。制御部110がいずれかの異常を検出したら(ステップS503;Yes)、制御部110は検出した異常の種類(「落下」「転がり」等の種別)を、変数Tに保存する(ステップS504)。このステップで制御部110は、例えば「落下」なら1、「転がり」なら2等、異常の種類に対応させた値を変数Tに保存する。
【0098】
そして、制御部110は、後述する効果音伸長スレッドを起動する(ステップS505)。効果音伸長スレッドは、異常の種類に応じた効果音を、異常が継続している間伸長する処理であるが、処理の詳細は後述する。
【0099】
そして、制御部110は、再度外部刺激を取得し(ステップS506)、変数Tに保存した種類の異常を検出したか否かを判定する(ステップS507)。変数Tに保存した種類の異常を検出したなら(ステップS507;Yes)、ステップS506に戻る。変数Tに保存した種類の異常が検出されないなら(ステップS507;No)、ステップS501に戻る。
【0100】
以上説明した異常検出スレッドにより、異常が検出されている間は変数Tに異常の種類が保存され、異常が検出されなくなると変数Tが初期化される。次に、異常検出スレッド(
図14)のステップS505で起動される効果音伸長スレッドについて、
図15を参照して説明する。
【0101】
まず制御部110は、変数Tと制御内容テーブル124を参照して、検出された異常に対応する効果音データを取得し(ステップS601)、効果音データに含まれるリピート位置P1及びP2を取得する(ステップS602)。
【0102】
次に制御部110は、音声出力部230で、効果音データを先頭から位置P1まで再生し(ステップS603)、さらに位置P1からP2まで順方向に再生する(ステップS604)。
【0103】
そして制御部110は、変数Tを参照し、まだ異常が継続中か否か、すなわち、変数Tの値が変化していない(初期化されていない)か否かを判定する(ステップS605)。異常が継続中でないなら(ステップS605;No)、制御部110は、音声出力部230で、効果音データを位置P2から最後まで再生し(ステップS606)、効果音伸長スレッドの処理を終了する。
【0104】
異常が継続中なら(ステップS605;Yes)、制御部110は、音声出力部230で、効果音データを位置P2から位置P1まで逆方向に再生し(ステップS607)、ステップS604に戻る。
【0105】
以上の効果音伸長スレッドの処理により、実施形態2に係るロボット200は、異常が検出されている間、不自然さを感じさせないように効果音を伸長させて出力することができる。
【0106】
(変形例)
なお、本発明は、上述の実施形態に限定されず、種々の変形及び応用が可能である。例えば、実施形態1と実施形態2とを組合せて、異常の際だけでなく、ロボット200の疑似的な感情に基づいて、効果音を自然に聞こえるように伸長させて出力させてもよい。
【0107】
また、上述の実施形態では、ロボット200に機器の制御装置100が内蔵されている構成としたが、機器の制御装置100はロボット200に内蔵されていなくてもよい。例えば、
図16に示すように、変形例に係る機器の制御装置100は、ロボット200に内蔵されずに別個の装置(例えばサーバ)として構成されてもよい。この変形例では、機器の制御装置100は通信部130を備え、ロボット200も通信部260を備え、通信部130と通信部260とがお互いにデータを送受信できるように構成されている。そして、制御部110は、通信部130及び通信部260を介して、外部刺激検出部210が検出した外部刺激を取得し、通信部130及び通信部260を介して、駆動部220や音声出力部230を制御する。
【0108】
また、上述の実施形態では、機器の制御装置100は、ロボット200を制御する制御装置であるが、制御の対象となる機器は、ロボット200に限られない。制御の対象となる機器としては、例えば、腕時計等も考えられる。例えば、音声出力可能で加速度センサやジャイロセンサを備え、アプリケーションソフトウエアとして疑似的な生物を機器内で育成することが可能な腕時計の場合、外部刺激としては、加速度センサやジャイロセンサで検出される、腕時計に加わった衝撃等を想定することができる。そして、この外部刺激に応じて感情変化データ122や感情データ121を更新し、腕時計をユーザが装着した時点の感情データ121に基づいて、制御内容テーブル124に設定されている効果音データを調整(変更)して出力させることが考えられる。
【0109】
そうすると、腕時計を乱暴に扱っているとユーザが装着した時に悲しそうな効果音を発し、丁寧に扱っているとユーザが装着した時に喜んでいるような効果音を発する腕時計にすることができる。さらに、第1期間(例えば50日間)で感情変化データ122が設定されるようにしている場合は、第1期間中のユーザの扱い方によって、腕時計に個性(疑似的な性格)が生じることになる。つまり、同じ型番の腕時計であっても、ユーザが丁寧に扱っていれば、喜びを感じやすい腕時計になり、乱暴に扱っていれば悲しみを感じやすい腕時計になる。
【0110】
このように機器の制御装置100は、ロボットに限らず、加速度センサやジャイロセンサ等を備えた様々な機器に適用させることができ、適用させた機器に疑似的な感情や性格を備えさせることができる。さらに、機器の制御装置100は、様々な機器に適用させることで、ユーザに、当該機器を疑似的に育てているように感じさせることができる。
【0111】
上述の実施形態において、制御部110のCPUが実行する動作プログラムは、あらかじめ記憶部120のROM等に記憶されているものとして説明した。しかしながら、本発明は、これに限定されず、上述の各種処理を実行させるための動作プログラムを、既存の汎用コンピュータ等に実装することにより、上述の実施形態に係る機器の制御装置100に相当する装置として機能させてもよい。
【0112】
このようなプログラムの提供方法は任意であり、例えば、コンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、MO(Magneto-Optical Disc)、メモリカード、USBメモリ等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0113】
また、上述の処理をOS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(Bulletin Board System:BBS)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0114】
本発明は、本発明の広義の精神と範囲とを逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、前述した実施の形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【符号の説明】
【0115】
100…機器の制御装置、110…制御部、120…記憶部、121…感情データ、122…感情変化データ、123…成長日数データ、124…制御内容テーブル、130,260…通信部、200…ロボット、201…外装、202…装飾部品、203…毛、204…頭部、205…連結部、206…胴体部、207…筐体、210…外部刺激検出部、211…タッチセンサ、212…加速度センサ、213…マイクロフォン、214…ジャイロセンサ、220…駆動部、221…ひねりモータ、222…上下モータ、230…音声出力部、231…スピーカ、240…操作入力部、300…感情マップ、301,302,303…枠、310…原点、311…X軸、312…Y軸、400…性格値レーダーチャート、411,412,413,414…軸、BL…バスライン