(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024048495
(43)【公開日】2024-04-09
(54)【発明の名称】機器の制御装置、機器の制御方法及びプログラム
(51)【国際特許分類】
A63H 11/00 20060101AFI20240402BHJP
G06N 20/00 20190101ALI20240402BHJP
【FI】
A63H11/00 Z
G06N20/00
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022154437
(22)【出願日】2022-09-28
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】長谷川 浩一
(72)【発明者】
【氏名】二村 渉
(72)【発明者】
【氏名】市川 英里奈
【テーマコード(参考)】
2C150
【Fターム(参考)】
2C150AA05
2C150CA02
2C150DA13
2C150DF04
2C150EB01
2C150ED42
2C150ED47
2C150EF16
2C150EF23
2C150EF25
2C150EF29
2C150FB50
(57)【要約】
【課題】擬似的な感情を適切に生成する。
【解決手段】機器の制御装置100は、機器に作用する外部刺激に応じて擬似的な感情を表す感情パラメータを設定する感情設定部113と、疑似的な感情が所定の状態に近い場合であって予め定めた期間において前記外部刺激が検出されない場合に、設定された感情パラメータを変化させる感情変化部115と、を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
機器に作用する外部刺激に応じて擬似的な感情を表す感情パラメータを設定する感情設定部と、
前記疑似的な感情が所定の状態に近い場合であって予め定めた期間において前記外部刺激が検出されない場合に、前記設定された感情パラメータを変化させる感情変化部と、
を備えることを特徴とする機器の制御装置。
【請求項2】
前記感情変化部は、前記予め定めた期間において前記外部刺激が検出されない場合、前記機器が落ち着いた状態にみえるよう、前記感情パラメータを変化させる、
ことを特徴とする請求項1に記載の機器の制御装置。
【請求項3】
前記感情変化部は、前記疑似的な感情が所定の状態に近い場合であって前記予め定めた期間において前記外部刺激が検出されない場合、前記擬似的な感情がニュートラルな感情になっていくことで、前記機器が前記落ち着いた状態にみえるよう、前記感情パラメータを段階的に変化させる、
ことを特徴とする請求項2に記載の機器の制御装置。
【請求項4】
前記感情変化部は、前記外部刺激が検出されない期間に基づいて変化させる前記感情パラメータの量を変化させる、
ことを特徴とする請求項1から3の何れか1項に記載の機器の制御装置。
【請求項5】
前記感情変化部は、前記機器の擬似的な性格に基づいて変化させる前記感情パラメータの量を変化させる、
ことを特徴とする請求項1から3の何れか1項に記載の機器の制御装置。
【請求項6】
前記機器はバッテリを備え、
前記感情変化部は、前記バッテリの充電量に応じて前記感情パラメータの変化量を変化させる、
ことを特徴とする請求項1から3の何れか1項に記載の機器の制御装置。
【請求項7】
前記機器はバッテリを備え、
前記感情変化部は、前記バッテリの充電を行っているか否かに基づいて、前記感情パラメータの変化量を変化させる、
ことを特徴とする請求項1から3の何れか1項に記載の機器の制御装置。
【請求項8】
制御装置の制御部が実行する制御方法であって、
機器に作用する外部刺激に応じて擬似的な感情を表す感情パラメータを設定するステップと、
前記疑似的な感情が所定の状態に近い場合であって予め定めた期間において前記外部刺激が検出されない場合に、前記設定された感情パラメータを変化させるステップと、
を含むことを特徴とする機器の制御方法。
【請求項9】
制御装置のコンピュータに、
機器に作用する外部刺激に応じて擬似的な感情を表す感情パラメータを設定するステップと、
前記疑似的な感情が所定の状態に近い場合であって予め定めた期間において前記外部刺激が検出されない場合に、前記設定された感情パラメータを変化させるステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器の制御装置、機器の制御方法及びプログラムに関する。
【背景技術】
【0002】
ロボット等の機器を、友達やペットのような親しみのある存在に近づけるように、その動作を制御する装置が開発されている。また、このような機器に擬似的な感情を持たせる技術も知られている。例えば、特許文献1には、機器に作用した外部刺激に応じて、機器の疑似的な感情を表す感情パラメータを設定し、設定された感情パラメータに応じて機器の動作を制御する機器の制御装置について記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された技術では、外部刺激が作用したときにその外部刺激の内容に基づいて擬似的な感情が生成され、生成された疑似的な感情に基づいた動作を実行する。一方、特許文献1に記載された技術では、疑似的な感情に基づく動作が所定期間以上変化せずに持続すると、ユーザからみて不自然に思われてしまう懸念があった。
【0005】
本発明は上記実情に鑑みてなされたものであり、擬似的な感情を適切に生成することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係る機器の制御装置の一様態は、
機器に作用する外部刺激に応じて擬似的な感情を表す感情パラメータを設定する感情設定部と、
前記疑似的な感情が所定の状態に近い場合であって予め定めた期間において前記外部刺激が検出されない場合に、前記設定された感情パラメータを変化させる感情変化部と、
を備える。
【発明の効果】
【0007】
本発明によれば、擬似的な感情を適切に生成することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係るロボットの外観を示す図である。
【
図2】実施形態に係るロボットの側面から見た断面図である。
【
図3】実施形態に係るロボットの筐体を説明する図である。
【
図4】実施形態に係るロボットの機能構成を示すブロック図である。
【
図5】実施形態に係る感情マップの一例を説明する図である。
【
図6】実施形態に係る性格値レーダーチャートの一例を説明する図である。
【
図7】実施形態に係る制御内容テーブルの一例を説明する図である。
【
図8】実施形態に係る変化量テーブルの一例を説明する図である。
【
図9】実施形態に係るロボット制御処理の流れを示すフローチャートである。
【
図10】実施形態に係る感情変化処理の流れを示すフローチャートである。
【
図11】実施形態に係る感情変化処理によって感情データが変化する例を示す図である。
【
図12A】変形例に係る変化量テーブルの一例を説明する図である。
【
図12B】変形例に係る変化量テーブルの一例を説明する図である。
【
図12C】変形例に係る変化量テーブルの一例を説明する図である。
【
図13】変形例に係る機器の制御装置及びロボットの機能構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0010】
(実施形態)
実施形態に係る機器の制御装置を
図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にジャイロセンサ213を備え、ロボット200が転がったり回転したりしていることを検出することができる。
【0017】
また、ロボット200は、胴体部206にマイクロフォン214を備え、外部の音を検出することができる。さらに、ロボット200は、胴体部206にスピーカ215を備え、スピーカ215を用いてロボット200の鳴き声(効果音)を発することができる。
【0018】
また、ロボット200は、胴体部206の底面に受電部251を備える。ロボット200は、筐体207内部に備えた充電可能なバッテリ(電池)252で駆動され、ワイヤレス充電器から送信された電力を受電部251で受信してバッテリ252を充電する。ワイヤレス充電器は、例えば、ペットのケージ(ハウス)を模したものであり、シート状の給電載置面を備える。ロボット200をワイヤレス充電器の給電載置面に載置すると、バッテリ252の充電が開始される。
【0019】
なお、本実施形態では加速度センサ212、ジャイロセンサ213、マイクロフォン214及びスピーカ215は胴体部206に備えられているが、これらの全て又は一部が頭部204に備えられていてもよい。また、胴体部206に備えられた加速度センサ212、ジャイロセンサ213、マイクロフォン214及びスピーカ215に加えて、これらの全て又は一部を頭部204にも備えるようにしてもよい。また、タッチセンサ211は、頭部204及び胴体部206にそれぞれ備えられているが、頭部204又は胴体部206のいずれか片方のみに備えられていてもよい。またこれらはいずれも複数備えられていてもよい。
【0020】
次に、ロボット200の機能構成について説明する。ロボット200は、
図4に示すように、機器の制御装置100と、外部刺激検出部210と、駆動部220と、音声出力部230と、操作入力部240と、電源制御部250とを備える。そして、機器の制御装置100は、制御部110と、記憶部120と、を備える。
図4では、機器の制御装置100と、外部刺激検出部210、駆動部220、音声出力部230、操作入力部240及び電源制御部250とが、バスラインBLを介して接続されているが、これは一例である。機器の制御装置100と、外部刺激検出部210、駆動部220、音声出力部230、操作入力部240及び電源制御部250とは、USB(Universal Serial Bus)ケーブル等の有線インタフェースや、Bluetooth(登録商標)等の無線インタフェースで接続されていてもよい。また、制御部110と記憶部120とは、バスラインBLを介して接続されていてもよい。
【0021】
機器の制御装置100は、制御部110及び記憶部120により、ロボット200の動作を制御する。
【0022】
制御部110は、例えば、CPU(Central Processing Unit)等で構成され、記憶部120に記憶されたプログラムにより、後述する各種処理(ロボット制御処理、感情変化処理等)を実行する。なお、制御部110は、複数の処理を並行して実行するマルチスレッド機能に対応しているため、後述する各種処理(ロボット制御処理、感情変化処理等)を並行に実行することができる。また、制御部110は、クロック機能やタイマー機能も備えており、日時等を計時することができる。
【0023】
また、制御部110は、本発明に係る機能的な構成として、変化量学習部111と、変化量取得部112と、感情設定部113と、動作制御部114と、感情変化部115とを備える。
【0024】
変化量学習部111は、ロボット200の疑似的な感情を変化させるパラメータである感情変化パラメータ(後述する感情変化データ122)を、外部刺激検出部210が検出した外部刺激に応じて学習し、記憶する。具体的には、変化量学習部111は、感情変化データ122を後述するロボット制御処理により、外部刺激に応じて増減させる。
【0025】
変化量取得部112は、変化量学習部111で学習された感情変化パラメータ(感情変化データ122)を、検出された外部刺激に応じて取得する。変化量取得部112の詳細については後述する。
【0026】
感情設定部113は、ロボット200の疑似的な感情を表す感情パラメータ(後述する感情データ121)を、変化量取得部112で取得された感情変化パラメータ(感情変化データ122)に応じて設定する。感情設定部113の詳細については後述する。
【0027】
動作制御部114は、外部刺激検出部が検出した外部刺激に応じてロボット200の動作を制御する。動作制御部114の詳細については後述する。
【0028】
感情変化部115は、後述する感情変化処理を実行することにより、ロボット200に作用する外部刺激が予め定めた期間において検出されなかった場合に段階的にロボットの疑似的な感情を変化させる。感情変化部115の詳細については後述する。
【0029】
記憶部120は、ROM(Read Only Memory)、フラッシュメモリ、RAM(Random Access Memory)等で構成される。ROMには、制御部110のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが、記憶されている。フラッシュメモリは書き込み可能な不揮発性のメモリであり、電源オフ後も保存させておきたいデータが記憶される。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【0030】
外部刺激検出部210は、前述したタッチセンサ211、加速度センサ212、ジャイロセンサ213、及びマイクロフォン214を備える。制御部110は、外部刺激検出部210が備える各種センサが検出した検出値を、ロボット200に作用する外部刺激を表す外部刺激データとして取得する。なお、外部刺激検出部210は、タッチセンサ211、加速度センサ212、ジャイロセンサ213、マイクロフォン214以外のセンサを備えてもよい。外部刺激検出部210が備えるセンサの種類を増やすことにより、制御部110が取得できる外部刺激の種類を増やすことができる。
【0031】
タッチセンサ211は、何らかの物体が接触したことを検出する。タッチセンサ211は、例えば圧力センサや静電容量センサにより構成される。タッチセンサ211が検出した検出値は、接触の強さを示す。また、タッチセンサ211は、指向性のある接触検知が可能であり、ロボット200の胴体部206の前後方向(X軸方向)からの接触、幅(左右)方向(Y軸方向)からの接触及び上下方向(Z軸方向)からの接触から成る3軸方向の接触の強さを検出する。よって、タッチセンサ211の検出値は、X軸方向からの接触の強さ、Y軸方向からの接触の強さ、及びZ軸方向からの接触の強さの値からなる3次元のデータである。制御部110は、タッチセンサ211からの検出値に基づいて、ユーザによってロボット200が撫でられていることや、叩かれたりしていること等を検出することができる。
【0032】
加速度センサ212は、ロボット200の胴体部206の前後方向(X軸方向)、幅(左右)方向(Y軸方向)及び上下方向(Z軸方向)から成る3軸方向の加速度を検出する。よって、加速度センサ212が検出する加速度の値は、X軸方向の加速度、Y軸方向の加速度、及びZ軸方向の加速度の値からなる3次元のデータである。加速度センサ212は、ロボット200が静止しているときには重力加速度を検出するので、制御部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の現在の姿勢を検出することができる。また、例えばユーザがロボット200を持ち上げたり投げたりした場合には、加速度センサ212は、重力加速度に加えてロボット200の移動に伴う加速度を検出する。したがって、制御部110は、加速度センサ212が検出した検出値から重力加速度の成分を除去することにより、ロボット200の動きを検出することができる。
【0033】
ジャイロセンサ213は、ロボット200の胴体部に回転が加えられたときの角速度を検出する。具体的には、ジャイロセンサ213は、胴体部206の前後方向(X軸方向)を軸とした回転、幅(左右)方向(Y軸方向)を軸とした回転、及び上下方向(Z軸方向)を軸とした回転から成る3軸回転の角速度を検出する。よって、ジャイロセンサ213が検出する角速度の値は、X軸回転の角速度、Y軸回転の角速度、及びZ軸回転の角速度の値からなる3次元のデータである。制御部110は、加速度センサ212が検出した検出値とジャイロセンサ213が検出した検出値とを組み合わせることで、ロボット200の動きをより精度よく検出することができる。
【0034】
なお、タッチセンサ211と加速度センサ212とジャイロセンサ213とは同期が取れており、同じタイミングで接触の強さ、加速度、角速度をそれぞれ検出し、検出値を制御部110に出力している。具体的には、タッチセンサ211と加速度センサ212とジャイロセンサ213とは、例えば0.25秒毎に、同じタイミングで接触の強さ、加速度、角速度を検出している。
【0035】
マイクロフォン214は、ロボット200の周囲の音を検出する。制御部110は、マイクロフォン214が検出した音の成分に基づき、例えばユーザがロボット200に呼びかけていることや、手を叩いていること等を検出することができる。
【0036】
駆動部220は、ひねりモータ221及び上下モータ222を備える。駆動部220は、制御部110によって駆動される。その結果、ロボット200は、例えば頭部204を持ち上げたり(第2回転軸を中心として上方に回転させたり)、横にひねったり(第1回転軸を中心として右方又は左方にひねり回転させたり)するような動作を表現することができる。これらの動作を表現するために駆動部220を駆動するためのモーションデータは、後述する制御内容テーブル123に記録されている。
【0037】
音声出力部230は、スピーカ215を備え、制御部110が音のデータを音声出力部230に入力することにより、スピーカ215から音が出力される。例えば、制御部110がロボット200の鳴き声のデータを音声出力部230に入力することにより、ロボット200は疑似的な鳴き声を発する。この鳴き声のデータも効果音データとして、制御内容テーブル123に記録されている。
【0038】
操作入力部240は、例えば、操作ボタン、ボリュームつまみ等から構成される。操作入力部240は、例えば、電源のオン/オフ、出力音のボリューム調整等のユーザ操作を受け付けるためのインタフェースである。
【0039】
電源制御部250は、サブマイコン、充電IC(Integrated Circuit)、電源制御IC、受電部251等を備え、ロボット200のバッテリ252の充電、バッテリ252の残量の取得、ロボット200の電源制御を行う。
【0040】
次に、機器の制御装置100の記憶部120に記憶されるデータのうち、本実施形態に特徴的なデータである、感情データ121、感情変化データ122、制御内容テーブル123、放置時間データ124、及び変化量テーブル125について、順に説明する。
【0041】
感情データ121は、ロボット200に疑似的な感情を持たせるためのデータであり、感情マップ300上の座標を示すデータ(X,Y)である。感情マップ300は
図5に示すように、X軸として安心度(不安度)の軸、Y軸として興奮度(無気力度)の軸を持つ2次元の座標系で表される。感情マップ上の原点(0,0)が通常時の感情を表す。ここでの通常時の感情とは、ロボット200の工場出荷後の初回起動時におけるニュートラルな感情を意味する。感情マップ300上のX座標の値(X値)が正でその絶対値が大きくなるほど安心度が高く、Y座標の値(Y値)が正でその絶対値が大きくなるほど興奮度が高い感情を表す。また、X値が負でその絶対値が大きくなるほど不安度が高く、Y値が負でその絶対値が大きくなるほど無気力度が高い感情を表す。
【0042】
感情データ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の次元数の個数の値が設定されるようにしてもよい。
【0043】
本実施形態においては、感情マップ300のサイズは、
図5の枠301に示すように、X値もY値も最大値が200、最小値が-200となっている。枠301の外側に感情データ121のX値、Y値を設定することはできない。
【0044】
図4に戻り、感情変化データ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値のマイナス方向への変化し易さ)
【0045】
本実施形態では、一例として、これらの変数の初期値をいずれも10とし、後述するロボット制御処理中の感情変化データを学習する処理により、最大20まで増加するものとしている。この学習処理により、感情変化データ122、すなわち感情の変化度合が変化するので、ロボット200は、ユーザによるロボット200との接し方に応じて、様々な性格を持つことになる。つまり、ロボット200の性格は、ユーザの接し方により、個々に異なって形成されることになる。
【0046】
そこで、本実施形態では、各感情変化データ122から10を減算することにより、各性格データ(性格値)を導出する。すなわち、安心し易さを示すDXPから10引いた値を性格値(陽気)とし、不安になり易さを示すDXMから10引いた値を性格値(シャイ)とし、興奮し易さを示すDYPから10引いた値を性格値(活発)とし、無気力になり易さを示すDYMから10引いた値を性格値(甘えん坊)とする。これにより、例えば、
図6に示すように、性格値(陽気)を軸411に、性格値(活発)を軸412に、性格値(シャイ)を軸413に、性格値(甘えん坊)を軸414に、それぞれプロットすることで、性格値レーダーチャート400を生成することができる。このように、感情変化パラメータ(感情変化データ122)の値は、ロボット200の擬似的な性格を表しているともいえる。
【0047】
制御内容テーブル123には、
図7に示すように、制御条件と制御データとが対応して記憶されている。制御部110は、制御条件(例えば、何らかの外部刺激が検出された)が満たされると、対応する制御データ(駆動部220で動作を表現するためのモーションデータ及び、音声出力部230から効果音を出力するための効果音データ)に基づき、駆動部220及び音声出力部230を制御する。
【0048】
モーションデータは、
図7に示すように、駆動部220を制御する一連のシーケンスデータ(「時間(ミリ秒):上下モータ222の回転角度(度):ひねりモータ221の回転角度(度)」の並び)である。例えば、体を撫でられたら、最初(0秒時)は上下モータ222及びひねりモータ221の回転角度を0度(上下基準角度及びひねり基準角度)にし、0.5秒時に上下モータ222の回転角度が60度になるように頭部204を上げ、1秒時にひねりモータ221の回転角度が60度になるように頭部204をひねり、というように制御部110は駆動部220を制御する。
【0049】
また、効果音データは、
図7では、わかりやすく示すために、各効果音データを説明する文が記載されているが、実際にはこれらの文で説明されている効果音データ自身(サンプリングされた音のデータ)が、効果音データとして制御内容テーブル123に格納されている。また、効果音データには語尾位置を示す値(例えば「語尾:30%」)も記憶されている。この値は効果音データ全体の長さの先頭からの語尾位置を百分率で示したものであり、後述する制御データ変更再生処理において効果音のトーンを変更(語尾の周波数を変更)する際に使用される。
【0050】
なお、
図7に示す制御内容テーブル123では、制御条件に感情(感情マップ300上の座標で表される)に関する条件が含まれていないが、制御条件に感情に関する条件を含めることにより、感情に応じて制御データを変化させてもよい。
【0051】
図4に戻り、放置時間データ124は、ロボットが放置されている時間(放置時間)を示すデータある。本実施形態では、ロボットに作用する外部刺激が検出されていない時間が放置時間として計測され、外部刺激が検出されると放置時間は0にリセットされる。
【0052】
変化量テーブル125には、
図8に示すように、放置時間条件と感情変化量とが対応して記憶されている。ここでの感情変化量は、感情マップ300上の距離に相当する。ロボット200の放置時間が放置時間条件を満たすと、制御部110(感情変化部115)は、対応する感情変化量に応じて感情データを変化させる。具体的には、制御部110は、対応する感情変化量が示す距離だけ、感情データ121が示す感情マップ300上での座標(X,Y)を特定の方向に変化させる。
図8に示すように、放置時間が長くなるほど感情変化量が大きくなるように変化量テーブル125の値は設定されている。
【0053】
次に、
図9に示すフローチャートを参照しながら、機器の制御装置100の制御部110が実行するロボット制御処理について説明する。ロボット制御処理は、機器の制御装置100が、外部刺激検出部210からの検出値等に基づいて、ロボット200の動作や鳴き声を制御する処理である。ユーザがロボット200の電源を入れると、ロボット制御処理が開始される。
【0054】
まず、制御部110は、感情データ121、感情変化データ122等の各種データを初期化する(ステップS101)。なお、ロボット200の起動の2回目以降は、ステップS101において、ロボット200の電源が前回切られた時点での各値を設定するようにしてもよい。これは、前回電源を切る操作が行われた時に制御部110が各データの値を記憶部120の不揮発メモリ(フラッシュメモリ等)に保存し、その後、電源が入れられた時に、当該保存した値を各データの値に設定することで実現可能である。
【0055】
続いて、制御部110は、クロック機能により、放置時間の計測を開始する(ステップS102)。以下、後述するステップS109によって放置時間がリセットされるまで、放置時間は継続して計測される。
【0056】
次に、制御部110は、外部刺激検出部210が検出した検出値を取得する(ステップS103)。そして制御部110は、取得した検出値に基づいて、外部刺激が存在したか否かを判定する(ステップS104)。
【0057】
外部刺激が存在したなら(ステップS104;Yes)、制御部110(変化量取得部112)は、ステップS103で取得した外部刺激の検出値に応じて感情変化データ122を取得する(ステップS105)。具体的には、例えば、外部刺激として頭部204のタッチセンサ211により頭部204が撫でられたことを検出すると、ロボット200は疑似的な安心感を得るので、制御部110は、感情データ121のX値に加算する感情変化データ122としてDXPを取得する。
【0058】
そして、制御部110(感情設定部113)は、ステップS105で取得された感情変化データ122に応じて感情データ121を設定する(ステップS106)。具体的には、例えば、ステップS104で感情変化データ122としてDXPが取得されていたなら、制御部110は、感情データ121のX値に感情変化データ122のDXPを加算する。
【0059】
ステップS105及びステップS106において、外部刺激の各々に対して、どのような感情変化データ122が取得されて、感情データ121が設定されるかは任意に設定可能であるが、ここでは、以下に一例を示す。
【0060】
頭部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及びジャイロセンサ213で検出可能)
優しい声で呼びかけられる(平穏になる):X=X+DXP、及びY=Y-DYM
大きな声で怒鳴られる(イライラする):X=X-DXM、及びY=Y+DYP
(これらの外部刺激はマイクロフォン214で検出可能)
【0061】
ただし、感情変化データ122を加算すると感情データ121の値(X値、Y値)が感情マップ300の最大値を超える場合には、感情データ121の値は感情マップ300の最大値に設定される。また、感情変化データ122を減算すると感情データ121の値が感情マップ300の最小値未満になる場合には、感情データ121の値は感情マップ300の最小値に設定される。
【0062】
続いて、制御部110(動作制御部114)は、制御内容テーブル123を参照して、当該取得した外部刺激の検出値により満たされる制御条件に対応した制御データを取得する(ステップS107)
【0063】
そして、制御部110(動作制御部114)は、ステップS107で取得した制御データを再生する(ステップS108)。なお、制御部110は、感情データ121に基づいて再生する制御データの内容を調整(変更)してもよい。
【0064】
続いて、制御部110は、放置時間を0にリセットして(ステップS109)、放置時間の計測を開始する(ステップS110)。そして、ステップS113に進む。
【0065】
一方、ステップS104で、外部刺激が存在しなかったなら(ステップS104;No)、制御部110は、自発的な動作(生物の呼吸を模した動作である呼吸模倣動作等)を行うか否かを判定する(ステップS111)。自発的な動作を行うか否かの判定方法は任意だが、本実施形態では、呼吸周期(例えば2秒)毎にステップS111の判定がYesになり、呼吸模倣動作が行われるものとする。
【0066】
自発的な動作を行わないなら(ステップS111;No)、制御部110はステップS113に進む。自発的な動作を行うなら(ステップS111;Yes)、制御部110は、自発的な動作として、自発的な動作(例えば呼吸動作)を実行し(ステップS112)、ステップS113に進む。
【0067】
この自発的な動作の制御データも(例えば
図7の「制御条件」の「呼吸周期が経過した」に示すように)制御内容テーブル123に記憶されている。なお、感情データ121に基づいて自発的な動作の制御内容を調整(変更)してもよい。
【0068】
ステップS113では、制御部110は、クロック機能により、日付が変わったか否かを判定する。日付が変わっていないなら(ステップS113;No)、制御部110はステップS103に戻る。
【0069】
日付が変わったなら(ステップS113;Yes)、制御部110(変化量学習部111)は、感情変化データ122の学習を行い(ステップS114)、ステップS103に戻る。感情変化データ122の学習とは、具体的には、その日のステップS106において、感情データ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を更新する処理のことである。
【0070】
ただし、感情変化データ122の各値が大きくなりすぎると、感情データ121の1回の変化量が大きくなりすぎるので、感情変化データ122の各値は例えば20を最大値とし、それ以下に制限する。また、ここでは、感情変化データ122のいずれに対しても1を加算することとしたが、加算する値は1に限定されない。例えば、感情データ121の各値が感情マップ300の最大値又は最小値に設定された回数をカウントして、その回数が多い場合には、感情変化データ122に加算する数値を増やすようにしてもよい。
【0071】
次に、
図10に示すフローチャートを参照しながら、機器の制御装置100の制御部110(感情変化部115)が実行する感情変化処理について説明する。感情変化処理は、ロボット200に電源が投入されている間、上述したロボット制御処理と別スレッドで並行して実行される処理である。感情変化処理によって、ロボット制御処理のステップS106で設定された感情データが、放置時間に応じて自動的に変化する。
【0072】
まず、制御部110は、放置時間データ124を参照して、現在の放置時間が10分以上であるか否かを判別する(ステップS201)。放置時間が10分未満である場合(ステップS201;No)、制御部110は以降のステップを実施せずに待機する。
【0073】
放置時間が10分以上である場合(ステップS201;Yes)、制御部110は、
図8に示す変化量テーブル125を参照して、現在の放置時間が満たす放置時間条件に対応する感情変化量を取得する(ステップS202)。例えば、放置時間が10分である場合、感情変化量は「1」が取得される。
【0074】
図10に戻り、続いて制御部110は、感情データ121が示す感情マップ300上のY座標の値(Y値)が正(0より大きい)であるか否かを判別する(ステップS203)。ステップS203の判別は、ロボット200が興奮状態であるか否かを判別することに相当する。
【0075】
感情データのY値が正の値である場合(ステップS203;Yes)、即ち、ロボット200が興奮状態にある場合、制御部110は、感情データ121が示す感情マップ300上の値(X,Y)を原点(0,0)に向かう方向に、ステップS202で取得した感情変化量に応じた距離だけ変化させ(ステップS204)、処理はステップS206に移る。この処理によって、興奮状態にあるロボット200の擬似的な感情はニュートラルな感情になるように変化し、ロボット200は落ち着いた状態に見えるようなる。
【0076】
一方、感情データ121のY値が正の値でない場合(ステップS203;No)、制御部110は、当該Y値が小さくなる方向(マイナス方向)に、ステップS202で取得した感情変化量に応じた距離分だけ変化させ(ステップS205)、処理はステップS206に移る。この処理によって、ロボット200の擬似的な感情は無気力になるように変化し、ロボット200は落ち着いた状態に見えるようになる。
【0077】
ステップS206において、制御部110は10分間待機する。その後、処理はステップS201に移る。
【0078】
続いて、上述した感情変化処理による感情データ121の変化について例を挙げて説明する。例えば、
図11に示すように、点A(Xa,Ya)に示す座標にロボットの感情データ121が設定されている状態で、外部刺激がロボット200に作用せずに10分が経過した場合を考える。この場合、Yaは正の値であるためステップS204の処理が実行され、点Aから原点(0,0)に向かう方向上にある、点Aから距離1だけ離れた点B(Xb,Yb)に感情データ121が変化する。
【0079】
その後、さらに10分放置されると(合計20分放置されると)、Ybは正の値であるためステップS204の処理が再度実行され、点Bから原点(0,0)に向かう方向上にある、点Bから距離3だけ離れた点C(Xc,Yc)に感情データが変化する。このことは、ロボットの擬似的な感情が初回起動時の状態に段階的に変化していくことを意味する。
【0080】
以後、放置時間が10分経過する毎に、Y値が正である感情データ121は原点方向に変化していき、感情データ121は点D(Xd=0,Yd=0)の原点まで変化する。そして、この状態からさらに10分放置されると、Ydは正の値ではないため、ステップS205の処理が実行され、点DからY軸に沿ったマイナス方向に向かう点E(Xe=0,Ye)に感情データ121が変化する。以後、外部刺激が検出されずに10分経過する毎に、感情データ121のY値はマイナス方向に段階的に変化していく。このことは、ロボット200の擬似的な感情が失われ、見た目や動作が無気力になっていくように段階的に変化していくことを意味する。
【0081】
以上説明したように、本実施形態に係る機器の制御装置100は、予め定めた期間、外部刺激が検出されなかった場合、ロボット200の擬似的な感情を表す感情データ121(感情パラメータ)を段階的に変化させる。即ち、ユーザがロボット200を放置したような場合であっても、ロボット200の擬似的な感情は変化していくようになるため、より生き物らしい感情表現が可能となり、擬似的な感情を適切に生成することが可能となる。
【0082】
また、本実施形態に係る機器の制御装置100は、感情データ121が示す興奮度(Y値)が正の値である、即ちロボット200が興奮している傾向にあると判定された場合(疑似的な感情が所定の状態に近い場合)、感情マップ300上の原点に向かう方向、即ち初回起動時の感情になっていくように感情データ121を変化させる。また、本実施形態に係る機器の制御装置100は、感情データ121が示す興奮度(Y値)が正の値でない、即ちロボット200が無気力な傾向にあると判定された場合(疑似的な感情が所定の状態に近い場合)、感情マップ300のY軸に沿った負の方向、即ちより無気力になっていくように感情データを変化させる。このような変化をさせることによって、放置されることによって落ち着きを取り戻して徐々に冷静になっていったり、無気力になっていったりするような感情表現が可能となり、実際の生物やペットに近い感情を形成したロボット200の提供が可能となる。
【0083】
また、本実施形態に係る機器の制御装置100は、外部刺激が検出されない期間(放置時間)が長くなるほど、段階的に変化させる感情パラメータの量(感情変化量)が大きくなるように変化量テーブル125(
図8)が設定されている。これにより、放置の初期にはほとんど感情は変化しないが、時間が経過するにつれてどんどん感情が変化していくことになり、より生物らしい感情表現を実現することが可能となる。
【0084】
(変形例)
なお、本発明は、上述の実施形態に限定されず、種々の変形及び応用が可能である。例えば、上記実施形態では、
図8に示す変化量テーブル125を用いて、段階的に変化させる感情データの量を決定した。即ち、放置時間が長くなるほど、感情データ121が大きく変化するようにロボット200を制御した。しかしながら、感情データ121をどのように変化させるかはこれに限定されるものでない。
【0085】
例えば、ロボット200のバッテリ252の充電量に基づいて、段階的に変化させる感情データ121の量を変化させてもよい。この場合、
図8に代えて、
図12Aに示す変化量テーブル125を記憶部120に記憶しておく。そして、感情変化処理のステップS202で制御部110は、
図12Aに示す変化量テーブル125を参照して感情変化量を取得すればよい。
図12Aに示す変化量テーブル125では、バッテリ252の充電量が多いほど、感情変化量が大きく設定されている。これにより、元気なときほど(充電量が多いほど)、感情が大きく変化するような生き物らしさを表現することが可能となる。
【0086】
例えば、感情変化データ122が表すロボットの擬似的な性格に基づいて、段階的に変化させる感情データ121の量を変化させてもよい。この場合、例えば、
図8に代えて
図12Bに示す変化量テーブル125を記憶部120に記憶しておく。そして、感情変化処理のステップS202で制御部110は、
図12Bに示す変化量テーブル125を参照して感情変化量を取得すればよい。なお、ロボット200の性格が、陽気、シャイ、活発、甘えん坊の何れかであるかは、前述した性格値レーダ-チャート400(
図6)から判定可能である。
図12Bに示す変化量テーブル125では、甘えん坊の性格の場合は、他の性格よりも感情変化量が大きく設定されている。これにより、かまってあげないで放置すると、すぐに感情が大きく変化するようになり、甘えん坊の性格をより反映した感情変化を実現することが可能となる。
【0087】
例えば、ロボット200がバッテリ252の充電中であるか否かに基づいて、段階的に変化させる感情データ121の量を変化させてもよい。この場合、例えば、
図8に代えて
図12Cに示す変化量テーブル125を記憶部120に記憶しておく。そして、感情変化処理のステップS202で制御部110は、
図12Cに示す変化量テーブル125を参照して感情変化量を取得すればよい。
【0088】
なお、上述したこれらの条件を組み合わせて段階的に変化させる感情データ121の量を決定してもよい。例えば、感情変化処理のステップS202で制御部110は、
図8、
図12A~Cで示した各変化量テーブル125を参照して、各条件に合致する感情変化量の合計値や平均値を算出し、ステップS204又はステップS205で制御部110は、算出した値に相当する距離だけ感情データ121を変化させてもよい。
【0089】
また、上記実施形態では、外部刺激が予め定めた期間において検出されないときに、感情データ121が示す興奮度(Y値)が正の値である場合は原点に向かう方向、興奮度(Y値)が正の値でない場合はY軸に沿った負の方向に感情データ121を変化させた。しかしながら、感情データ121を段階的に変化させる方向はこれに限定されるものではない。例えば、安心度(X値)がマイナスになる方向に感情データ121を段階的に変化させてもよい。また、10分毎に感情データ121をランダムな方向に変化させてもよい。
【0090】
また、上述の実施形態では、ロボット200に機器の制御装置100が内蔵されている構成としたが、機器の制御装置100はロボット200に内蔵されていなくてもよい。例えば、
図13に示すように、変形例に係る機器の制御装置100は、ロボット200に内蔵されずに別個の装置(例えばサーバ)として構成されてもよい。この変形例では、機器の制御装置100は通信部130を備え、ロボット200も通信部260を備え、通信部130と通信部260とがお互いにデータを送受信できるように構成されている。そして、制御部110は、通信部130及び通信部260を介して、外部刺激検出部210が検出した外部刺激を取得し、通信部130及び通信部260を介して、駆動部220や音声出力部230を制御する。
【0091】
また、上述の実施形態では、機器の制御装置100は、ロボット200を制御する制御装置であるが、制御の対象となる機器は、ロボット200に限られない。制御の対象となる機器としては、例えば、腕時計等も考えられる。例えば、音声出力可能で加速度センサやジャイロセンサを備えた腕時計を制御の対象となる機器とする場合、外部刺激としては、加速度センサやジャイロセンサで検出される、腕時計に加わった衝撃等を想定することができる。そして、この外部刺激に応じて感情変化データ122や感情データ121を更新し、腕時計をユーザが装着した時点の感情データ121に基づいて、制御内容テーブル123に設定されている効果音データを調整(変更)して出力させることが考えられる。
【0092】
そうすると、腕時計を乱暴に扱っているとユーザが装着した時に悲しそうな効果音を発し、丁寧に扱っているとユーザが装着した時に喜んでいるような効果音を発する腕時計にすることができる。さらに、このような腕時計でも同様に感情変化処理を実行することで、ユーザが長時間使用せずに放置している場合に擬似的な感情を変化させることが可能となる。
【0093】
このように機器の制御装置100は、ロボットに限らず、様々な機器に適用させることができ、適用させた機器に疑似的な感情や性格を備えさせることができる。さらに、機器の制御装置100は、様々な機器に適用させることで、ユーザに、当該機器を疑似的に育てているように感じさせることができる。
【0094】
上述の実施形態において、制御部110のCPUが実行する動作プログラムは、あらかじめ記憶部120のROM等に記憶されているものとして説明した。しかしながら、本発明は、これに限定されず、上述の各種処理を実行させるための動作プログラムを、既存の汎用コンピュータ等に実装することにより、上述の実施形態に係る機器の制御装置100に相当する装置として機能させてもよい。
【0095】
このようなプログラムの提供方法は任意であり、例えば、コンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、MO(Magneto-Optical Disc)、メモリカード、USBメモリ等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0096】
また、上述の処理をOS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(Bulletin Board System:BBS)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0097】
本発明は、本発明の広義の精神と範囲とを逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、前述した実施の形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【符号の説明】
【0098】
100…機器の制御装置、110…制御部、120…記憶部、121…感情データ、122…感情変化データ、123…制御内容テーブル、124…放置時間データ、125…変化量テーブル、130,260…通信部、200…ロボット、201…外装、202…装飾部品、203…毛、204…頭部、205…連結部、206…胴体部、207…筐体、210…外部刺激検出部、211…タッチセンサ、212…加速度センサ、213…ジャイロセンサ、214…マイクロフォン、215…スピーカ、220…駆動部、221…ひねりモータ、222…上下モータ、230…音声出力部、240…操作入力部、300…感情マップ、301…枠、400…性格値レーダーチャート、411,412,413,414…軸、BL…バスライン