IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

特開2022-189892機器の制御装置、機器の制御方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022189892
(43)【公開日】2022-12-22
(54)【発明の名称】機器の制御装置、機器の制御方法及びプログラム
(51)【国際特許分類】
   B25J 13/00 20060101AFI20221215BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022167718
(22)【出願日】2022-10-19
(62)【分割の表示】P 2021042128の分割
【原出願日】2021-03-16
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】長谷川 浩一
(72)【発明者】
【氏名】渋谷 敦
(72)【発明者】
【氏名】河村 義裕
(72)【発明者】
【氏名】浦野 美由紀
(57)【要約】
【課題】生き物感を失わせずに充電が必要なことをユーザに知らせる。
【解決手段】機器の制御装置100は、ロボット200の動きを表現するための可動部を駆動する駆動部220とロボット200から音を出力する音出力部との少なくとも一方を含む被制御部を制御する処理部110を備え、処理部110は、ロボット200のバッテリー残量を取得し、ロボット200のバッテリー残量を通知するべき通知条件が満たされたら、取得したバッテリー残量に基づいて、被制御部を制御する制御態様を変更する。
【選択図】図8
【特許請求の範囲】
【請求項1】
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を制御する処理部を備え、
前記処理部は、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
機器の制御装置。
【請求項2】
前記処理部は、
前記取得したバッテリー残量が第1残量閾値未満なら、前記通知条件が満たされたとして、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
請求項1に記載の機器の制御装置。
【請求項3】
前記処理部は、
前記機器に作用する外部刺激を取得し、
前記取得した外部刺激が所定の残量通知刺激なら、前記通知条件が満たされたとして、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
請求項1又は2に記載の機器の制御装置。
【請求項4】
前記処理部による前記被制御部を制御する制御態様の変更は、前記可動部を駆動して前記機器を振動させる制御態様への変更である、
請求項1から3のいずれか1項に記載の機器の制御装置。
【請求項5】
前記処理部は、
前記取得したバッテリー残量が小さいほど、前記機器を振動させる回数を多くするか、又は振動させる時間を長くする、
請求項4に記載の機器の制御装置。
【請求項6】
前記処理部は、
前記機器の周囲の気温を取得し、
前記取得した気温が第1気温閾値未満になったら、気温通知条件が満たされたとして、前記取得した気温に基づいて、前記可動部を駆動して前記機器を振動させる、
請求項1から5のいずれか1項に記載の機器の制御装置。
【請求項7】
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を備える機器の制御方法であって、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
機器の制御方法。
【請求項8】
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を制御する処理部を備える前記機器を制御するコンピュータに、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器の制御装置、機器の制御方法及びプログラムに関する。
【背景技術】
【0002】
従来から様々なロボットが開発されてきているが、近年は産業用ロボットだけでなく、ペットロボットのような民生用のロボットの開発も進んでいる。例えば、特許文献1には、モーニングコールロボ犬や番犬として用いることができる犬のような形状の小型ロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-62776号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の小型ロボットシステムは、バッテリー残量が少なくなってくると、自動的に充電装置の場所まで移動して充電することができるようになっている。しかし、目的場所に移動できないロボットにおいては、ユーザによって充電装置にセットしてもらう必要がある。また、ロボットがバッテリー残量をディスプレイ等で表示すると、そのロボットの生き物感が失われてしまうが、そのようなディスプレイを備えていないと、ユーザはいつ充電を開始させればよいかわからないという問題がある。
【0005】
そこで、本発明はこのような事情に鑑みてなされたものであって、生き物感を失わせずに充電が必要なことをユーザに知らせることができる機器の制御装置、機器の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係る機器の制御装置の一様態は、
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を制御する処理部を備え、
前記処理部は、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する。
【発明の効果】
【0007】
本発明によれば、生き物感を失わせずに充電が必要なことをユーザに知らせることができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係るロボットの外観を示す図である。
図2】実施形態に係るロボットの側面から見た断面図である。
図3】実施形態に係るロボットの筐体を説明する図である。
図4】実施形態に係るロボットのひねりモータの動きの一例を説明する図である。
図5】実施形態に係るロボットのひねりモータの動きの一例を説明する他の図である。
図6】実施形態に係るロボットの上下モータの動きの一例を説明する図である。
図7】実施形態に係るロボットの上下モータの動きの一例を説明する他の図である。
図8】実施形態に係るロボットの機能構成を示すブロック図である。
図9】実施形態に係る感情マップの一例を説明する図である。
図10】実施形態に係る性格値レーダーチャートの一例を説明する図である。
図11】実施形態に係る成長テーブルの一例を説明する図である。
図12】実施形態に係る動作内容テーブルの一例を説明する図である。
図13】実施形態に係るモーションテーブルの一例を説明する図である。
図14】実施形態に係る動作制御処理のフローチャートの第1の部分である。
図15】実施形態に係る動作制御処理のフローチャートの第2の部分である。
図16】実施形態に係る動作選択処理のフローチャートである。
図17】実施形態に係る残量通知動作処理のフローチャートである。
図18】実施形態に係る残量確認処理のフローチャートである。
図19】実施形態に係る気温確認処理のフローチャートである。
図20】実施形態に係る振動動作処理のフローチャートである。
図21】実施形態に係るロボットの頭部を下げた様子の一例を説明する図である。
図22】実施形態に係るロボットの頭部を正転した様子の一例を説明する図である。
図23】実施形態に係るロボットの頭部を逆転した様子の一例を説明する図である。
図24】変形例に係る機器の制御装置及びロボットの機能構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0010】
(実施形態)
本発明における機器の制御装置を図1に示すロボット200に適用した実施形態について、図面を参照して説明する。実施形態に係るロボット200は、充電可能なバッテリーで駆動する、小型の動物を模したペットロボットである。ロボット200は、図1に示すように、目を模した装飾部品202及びふさふさの毛203を備えた外装201に覆われている。また、外装201の中には、ロボット200の筐体207が収納されている。図2に示すように、ロボット200の筐体207は、頭部204、連結部205及び胴体部206で構成され、頭部204と胴体部206とが連結部205で連結されている。
【0011】
なお、以下の説明では、ロボット200を床等の載置面に普通に置いた場合を想定して、ロボット200の顔に相当する部分(頭部204の胴体部206とは反対側の部分)の方向を前、お尻に相当する部分(胴体部206の頭部204とは反対側の部分)の方向を後ろとする。また、ロボット200を載置面に普通に置いた場合に載置面に接触する部分の方向を下、その反対の方向を上とする。そして、ロボット200の前後方向に延びる直線に直交し、かつ、上下方向に延びる直線にも直交する方向を、幅方向とする。
【0012】
胴体部206は、図2に示すように、前後方向に延びている。そして、胴体部206は、ロボット200が置かれている床やテーブル等の載置面に、外装201を介して接触する。また、図2に示すように、胴体部206の前端部にひねりモータ221が備えられており、頭部204が連結部205を介して胴体部206の前端部に連結されている。そして、連結部205には、上下モータ222が備えられている。なお、図2では、ひねりモータ221は胴体部206に備えられているが、連結部205に備えられていてもよいし、頭部204に備えられていてもよい。
【0013】
連結部205は、連結部205を通り胴体部206の前後方向に延びる第1回転軸を中心として(ひねりモータ221により)回転自在に、胴体部206と頭部204とを連結している。筐体207の正面図として図4及び図5に示すように、ひねりモータ221は、頭部204を、胴体部206に対して、第1回転軸を中心として時計回り(右回り)に正転角度範囲内で回転(正転)させたり、反時計回り(左回り)に逆転角度範囲内で回転(逆転)させたりする。なお、この説明における時計回りは、胴体部206から頭部204の方向を見た時の時計回りである。また、時計回りの回転を「右方へのひねり回転」、反時計回りの回転を「左方へのひねり回転」とも呼ぶことにする。右方又は左方にひねり回転させる角度の最大値は任意であるが、本実施形態では左右とも90度まで回転可能であるものとする。図4及び図5では、図3に示す、頭部204を右方へも左方へもひねっていない状態における頭部204の角度(以下「ひねり基準角度」)を0度としている。そして、最も右方へひねり回転(時計回りに回転)させた時の角度を-90度、最も左方へひねり回転(反時計回りに回転)させた時の角度を+90度、としている。
【0014】
また、連結部205は、連結部205を通り胴体部206の幅方向に延びる第2回転軸を中心として(上下モータ222により)回転自在に、胴体部206と頭部204とを連結する。筐体207の側面図として図6及び図7に示すように、上下モータ222は、頭部204を、第2回転軸を中心として上方に正転角度範囲内で回転(正転)させたり、下方に逆転角度範囲内で回転(逆転)させたりする。上方又は下方に回転させる角度の最大値は任意だが、本実施形態では上下とも75度まで回転可能であるものとする。図6及び図7では、図2に示す、頭部204を上方にも下方にも回転させていない状態における頭部204の角度(以下「上下基準角度」)を0度、最も下方に回転させた時の角度を-75度、最も上方に回転させた時の角度を+75度、としている。頭部204は、第2回転軸を中心とする上下の回転によって上下基準角度又は上下基準角度より下方に回転している場合は、ロボット200が置かれている床やテーブル等の載置面に、外装201を介して接触可能である。なお、図2では、第1回転軸と第2回転軸とが互いに直交している例が示されているが、第1及び第2回転軸は互いに直交していなくてもよい。
【0015】
また、ロボット200は、図2に示すように、頭部204にタッチセンサ211を備え、ユーザが頭部204を撫でたり叩いたりしたことを検出することができる。また、胴体部206にもタッチセンサ211を備え、ユーザが胴体部206を撫でたり叩いたりしたことを検出することができる。
【0016】
また、ロボット200は、胴体部206に加速度センサ212を備え、ロボット200自体の姿勢の検出や、ユーザによって持ち上げられたり、向きを変えられたり、投げられたりしたことを検出することができる。また、ロボット200は、胴体部206にマイクロフォン213を備え、外部の音を検出することができる。さらに、ロボット200は、胴体部206にスピーカ231を備え、スピーカ231を用いてロボット200の鳴き声を発したり、歌を歌ったりすることができる。
【0017】
また、ロボット200は、胴体部206に照度センサ214を備え、周囲の明るさを検出することができる。なお、外装201は光を通す素材でできているため、外装201で覆われていても、ロボット200は、照度センサ214で周囲の明るさを検出可能である。
【0018】
また、ロボット200は、胴体部206に温度センサ215を備え、周囲の気温を取得することができる。
【0019】
また、ロボット200は、ひねりモータ221や上下モータ222などの電源としてのバッテリー(図示せず)と、ワイヤレス給電受信回路255を備えている。ワイヤレス給電受信回路255は、胴体部206に設けられており、バッテリーを充電する際に、ロボット200とは別個に設けられたワイヤレス充電装置(図示せず)から電力を受信する。
【0020】
なお、本実施形態では加速度センサ212、マイクロフォン213、照度センサ214、温度センサ215及びスピーカ231が胴体部206に備えられているが、これらの全て又は一部が頭部204に備えられていてもよい。また、胴体部206に備えられた加速度センサ212、マイクロフォン213、照度センサ214、温度センサ215及びスピーカ231に加えて、これらの全て又は一部を頭部204にも備えるようにしてもよい。また、タッチセンサ211は、頭部204及び胴体部206にそれぞれ備えられているが、頭部204又は胴体部206のいずれか片方のみに備えられていてもよい。またこれらはいずれも複数備えられていてもよい。
【0021】
また、本実施形態では、ロボット200は、筐体207が外装201に覆われているため、頭部204や胴体部206は、ロボット200が置かれている床やテーブル等の載置面に、外装201を介して間接的に接触している。しかし、このような形態には限定されず、頭部204や胴体部206は、直接的に載置面に接触してもよい。例えば、外装201の下の部分(載置面と接触する部分)が存在せずに、筐体207の下の部分(載置面と接触する部分)がむき出しになっていてもよいし、外装201が全く存在せずに、筐体207全体がむき出しになっていてもよい。
【0022】
次に、ロボット200の機能構成について説明する。ロボット200は、図8に示すように、機器の制御装置100と、センサ部210と、駆動部220と、出力部230と、操作部240と、電源制御部250と、を備える。そして、機器の制御装置100は、処理部110と、記憶部120と、通信部130と、を備える。図8では、機器の制御装置100と、センサ部210、駆動部220、出力部230、操作部240及び電源制御部250とが、バスラインBLを介して接続されているが、これは一例である。機器の制御装置100と、センサ部210、駆動部220、出力部230、操作部240及び電源制御部250とは、USB(Universal Serial Bus)ケーブル等の有線インタフェースや、Bluetooth(登録商標)等の無線インタフェースで接続されていてもよい。また、処理部110と記憶部120や通信部130とは、バスラインBL等を介して接続されていてもよい。
【0023】
機器の制御装置100は、処理部110及び記憶部120により、ロボット200の動作を制御する。
【0024】
処理部110は、例えば、CPU(Central Processing Unit)等で構成され、記憶部120に記憶されたプログラムにより、後述する各種処理を実行する。なお、処理部110は、複数の処理を並行して実行するマルチスレッド機能に対応しているため、後述する各種処理を並行に実行することができる。また、処理部110は、クロック機能やタイマー機能も備えており、日時等を計時することができる。
【0025】
記憶部120は、ROM(Read Only Memory)、フラッシュメモリ、RAM(Random Access Memory)等で構成される。ROMには、処理部110のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが、記憶されている。フラッシュメモリは書き込み可能な不揮発性のメモリであり、電源OFF後も保存させておきたいデータが記憶される。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【0026】
通信部130は、無線LAN(Local Area Network)、Bluetooth(登録商標)等に対応した通信モジュールを備え、スマートフォン等の外部装置とデータ通信する。データ通信の内容としては、例えば、ロボット200のバッテリー残量をスマートフォン等に表示するための、残量通知要求の受信や、バッテリー残量の情報の送信が挙げられる。
【0027】
センサ部210は、前述したタッチセンサ211、加速度センサ212、マイクロフォン213、照度センサ214及び温度センサ215を備える。処理部110は、バスラインBLを介して、センサ部210が備える各種センサが検出した検出値をロボット200に作用する外部刺激を表す外部刺激データとして取得する。なお、センサ部210は、タッチセンサ211、加速度センサ212、マイクロフォン213、照度センサ214、温度センサ215以外のセンサを備えてもよい。センサ部210が備えるセンサの種類を増やすことにより、処理部110が取得できる外部刺激の種類を増やすことができる。逆に、センサ部210は必ずしも上述したすべてのセンサを備える必要はない。例えば、周囲の明るさに基づく制御が不要な場合には、センサ部210は照度センサ214を備えなくてもよい。
【0028】
タッチセンサ211は、何らかの物体が接触したことを検出する。タッチセンサ211は、例えば圧力センサや静電容量センサにより構成される。処理部110は、タッチセンサ211からの検出値に基づいて、接触強度や接触時間を取得し、これらの値に基づいて、ユーザによってロボット200が撫でられていることや、叩かれたりしていること等の外部刺激を検出することができる(例えば特開2019-217122号公報を参照)。なお、処理部110は、これらの外部刺激をタッチセンサ211以外のセンサで検出してもよい(例えば特許第6575637号公報を参照)。
【0029】
加速度センサ212は、ロボット200の胴体部206の前後方向、幅(左右)方向及び上下方向から成る3軸方向の加速度を検出する。加速度センサ212は、ロボット200が静止しているときには重力加速度を検出するので、処理部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の現在の姿勢を検出することができる。また、例えばユーザがロボット200を持ち上げたり投げたりした場合には、加速度センサ212は、重力加速度に加えてロボット200の移動に伴う加速度を検出する。したがって、処理部110は、加速度センサ212が検出した検出値から重力加速度の成分を除去することにより、ロボット200の動きを検出することができる。
【0030】
マイクロフォン213は、ロボット200の周囲の音を検出する。処理部110は、マイクロフォン213が検出した音の成分に基づき、例えばユーザがロボット200に呼びかけていることや、手を叩いていること等を検出することができる。
【0031】
照度センサ214は、フォトダイオード等の受光素子を備え、周囲の明るさ(照度)を検出する。例えば、処理部110は、照度センサ214で周囲が暗いことを検出したら、ロボット200を疑似的に寝かせる(スリープ制御モードにする)制御を行うことができる。
【0032】
温度センサ215は、熱電対、測温抵抗体等を備え、周囲の気温を取得する。例えば、処理部110は、温度センサ215で周囲の気温が低いことを検出したら、ロボット200を震わせる(振動させる)制御を行うことができる。
【0033】
駆動部220は、ロボット200(自機)の動きを表現するための可動部として、ひねりモータ221及び上下モータ222を備える。駆動部220(ひねりモータ221及び上下モータ222)は、処理部110によって駆動される。ひねりモータ221及び上下モータ222は、サーボモータであり、処理部110から動作時間及び動作角度が指定されて回転を指示されると、指定された動作時間後までに、指定された動作角度の位置まで回転するように動作する。なお、駆動部220は可動部として他の適当なアクチェータ、例えば流体圧モータ等を備えてもよい。処理部110が駆動部220を制御することにより、駆動部220はロボット200の頭部204を駆動する。これにより、ロボット200は、例えば頭部204を持ち上げたり(第2回転軸を中心として上方に回転させたり)、横にひねったり(第1回転軸を中心として右方又は左方にひねり回転させたり)するような動作を表現することができる。これらの動作を行うための動作制御データは、後述するモーションテーブル125に記録されており、検出した外部刺激や後述する成長値等に基づいて、ロボット200の動作が制御される。
【0034】
出力部230は、スピーカ231を備え、処理部110が音のデータ(例えばサンプリングデータ)を出力部230に入力することにより、スピーカ231から音が出力される。例えば、処理部110がロボット200の鳴き声のサンプリングデータを出力部230に入力することにより、ロボット200は疑似的な鳴き声を発する。この鳴き声のサンプリングデータも、モーションテーブル125に記録されており、検出した外部刺激や後述する成長値等に基づいて鳴き声が選択される。なお、スピーカ231で構成される出力部230は、音出力部とも呼ばれる。
【0035】
また、出力部230として、スピーカ231に代えて、又はスピーカ231に加えて、液晶ディスプレイ等のディスプレイや、LED(Light Emitting Diode)等の発光部を備え、検出した外部刺激や後述する成長値等に基づいた画像をディスプレイに表示したり、LED等を発光させたりしてもよい。
【0036】
操作部240は、例えば、操作ボタン、ボリュームつまみ等から構成される。操作部240は、ユーザ(所有者や被貸与者)による操作、例えば、電源ON/OFF、出力音のボリューム調整等を受け付けるためのインタフェースである。なお、ロボット200は生き物感をより高めるために、操作部240として電源スイッチ241のみを外装201の内側に備え、それ以外の操作ボタンやボリュームつまみ等を備えなくてもよい。この場合でも、通信部130を介して接続した外部のスマートフォン等を用いてロボット200のボリューム調整等の操作を行うことができる。
【0037】
電源制御部250は、サブマイコン、充電IC(Integrated Circuit)、電源制御IC、ワイヤレス給電受信回路255等を備え、ロボット200のバッテリーの充電、バッテリー残量の取得、ロボット200の主な機能を実現する主機能部の電源のON/OFF制御、等の電源制御を行う。なお、主機能部とは、ロボット200を構成する機能部のうち、電源制御部250を除いた部分であり、処理部110、駆動部220等を含む。
【0038】
ロボット200では、生き物感を出すために、充電ケーブル等を接続するようなことはせずに、ワイヤレス充電で前記バッテリーが充電される。ワイヤレス充電の方式は任意であるが、本実施形態では電磁誘導方式が用いられる。ロボット200をワイヤレス充電装置の上に載せると、胴体部206の底面に設けられたワイヤレス給電受信回路255と外部のワイヤレス充電装置との間で誘導磁束が発生し、充電が行われる。
【0039】
次に、記憶部120に記憶されるデータのうち、本実施形態に特徴的なデータである、感情データ121、感情変化データ122、成長テーブル123、動作内容テーブル124、モーションテーブル125及び成長日数データ126について、順に説明する。
【0040】
感情データ121は、ロボット200に疑似的な感情を持たせるためのデータであり、感情マップ300上の座標を示すデータ(X,Y)である。感情マップ300は図9に示すように、X軸311として安心度(不安度)の軸、Y軸312として興奮度(無気力度)の軸を持つ2次元の座標系で表される。感情マップ上の原点310(0,0)が通常時の感情を表す。そして、X座標の値(X値)が正でその絶対値が大きくなるほど安心度が高く、Y座標の値(Y値)が正でその絶対値が大きくなるほど興奮度が高い感情を表す。また、X値が負でその絶対値が大きくなるほど不安度が高く、Y値が負でその絶対値が大きくなるほど無気力度が高い感情を表す。
【0041】
感情データ121は、互いに異なる複数(本実施形態では4つ)の疑似的な感情を表す。本実施形態では、疑似的な感情を表す値のうち、安心度と不安度を1つの軸(X軸)上でまとめて表し、興奮度と無気力度を別の1つの軸(Y軸)上でまとめて表している。したがって、感情データ121は、X値(安心度、不安度)とY値(興奮度、無気力度)の2つの値を持ち、X値とY値とで表される感情マップ300上の点が、ロボット200の疑似的な感情を表す。感情データ121の初期値は(0,0)である。
【0042】
感情データ121は、ロボット200の疑似的な感情を表すデータである。なお、図9では感情マップ300が2次元の座標系で表されているが、感情マップ300の次元数は任意である。感情マップ300を1次元で規定し、感情データ121として1つの値が設定されるようにしてもよい。また、他の軸を加えて3次元以上の座標系で感情マップ300を規定し、感情データ121として感情マップ300の次元数の個数の値が設定されるようにしてもよい。
【0043】
本実施形態においては、感情マップ300の初期値としてのサイズは、図9の枠301に示すように、X値もY値も最大値が100、最小値が-100となっている。そして、第1期間の間、ロボット200の疑似的な成長日数が1日増える度に、感情マップ300の最大値、最小値ともに2ずつ拡大されていく。ここで第1期間とは、ロボット200が疑似的に成長する期間であり、ロボット200の疑似的な生誕から例えば50日の期間である。なお、ロボット200の疑似的な生誕とは、ロボット200の工場出荷後のユーザによる初回の起動時である。成長日数が25日になると、図9の枠302に示すように、X値もY値も最大値が150、最小値が-150となる。そして、第1期間(この例では50日)が経過すると、それにより、ロボット200の疑似的な成長が完了したとして、図9の枠303に示すように、X値もY値も最大値が200、最小値が-200となって、感情マップ300のサイズが固定される。
【0044】
感情データ121の設定可能範囲は、感情マップ300によって規定される。このため、感情マップ300のサイズが拡大するにつれて、設定可能な感情データ121の範囲が拡大する。感情データ121の設定可能範囲が拡大することにより、より豊かな感情表現が可能になるので、ロボット200の疑似的な成長が、感情マップ300のサイズの拡大によって表現されることになる。そして、感情マップ300のサイズは第1期間経過後に固定され、それにより、ロボット200の疑似的な成長が終了する。なお、ロボット200の疑似的な成長の停止条件は、上述の「第1期間が経過したら停止」に限定されず、他の条件を追加してもよい。例えば、「4つの性格値のいずれかが10(最大)になったら停止」としてもよい。この条件で成長を停止させると、4つの性格のうち1つの性格のみが最大となった時点で性格が固定されるため、特定の性格を強く出すことが可能となる。
【0045】
感情変化データ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値のマイナス方向への変化し易さ)
【0046】
本実施形態では、一例として、これらの変数の初期値をいずれも10とし、後述する動作制御処理の中の感情変化データを学習する処理により、最大20まで増加するものとしている。この学習処理では、感情データの値が感情マップ300の最大値又は最小値に達したかに基づく条件(外部刺激データに基づく第1条件)に応じて、感情変化データを変化させる。なお、外部刺激データに基づく第1条件としては、上記条件に限らず、感情マップ300のサイズが固定される前に感情変化データを変化(学習)させる条件(例えば、感情データ121で表されるロボット200の疑似的な感情の度合いに関する条件)であれば任意の条件を設定可能である。この学習処理により、感情変化データ122、すなわち感情の変化度合いが変化するので、ロボット200は、ユーザによるロボット200との接し方に応じて、様々な性格を持つことになる。つまり、ロボット200の性格は、ユーザの接し方により、個々に異なって形成されることになる。
【0047】
そこで、本実施形態では、各感情変化データ122から10を減算することにより、各性格データ(性格値)を導出する。すなわち、安心し易さを示すDXPから10引いた値を性格値(陽気)とし、不安になり易さを示すDXMから10引いた値を性格値(シャイ)とし、興奮し易さを示すDYPから10引いた値を性格値(活発)とし、無気力になり易さを示すDYMから10引いた値を性格値(甘えん坊)とする。これにより、例えば、図10に示すように、性格値(陽気)を軸411に、性格値(活発)を軸412に、性格値(シャイ)を軸413に、性格値(甘えん坊)を軸414に、それぞれプロットすることで、性格値レーダーチャート400を生成することができる。
【0048】
各性格値の初期値は0であるため、ロボット200の最初の性格は、性格値レーダーチャート400の原点410で表される。そして、ロボット200が成長するにつれて、センサ部210で検出された外部刺激等(ユーザのロボット200への接し方)によって、各性格値が10を上限として変化する。本実施形態のように4つの性格値が0から10まで変化する場合には、11の4乗=14641通りの性格を表現できることになる。
【0049】
本実施形態では、ロボット200の疑似的な成長度合いを示す成長度合いデータ(成長値)として、これら4つの性格値の中で、最も大きい値を用いる。そして、処理部110は、ロボット200の疑似的な成長につれて(成長値が大きくなるにつれて)、ロボット200の動作内容にバリエーションが生じるように制御する。このために処理部110が用いるデータが成長テーブル123である。
【0050】
図11に示すように、成長テーブル123には、センサ部210で検出された外部刺激等の動作トリガーに応じて、ロボット200が行う動作の種類と、成長値に応じて各動作が選択される確率(以下「動作選択確率」という)とが、記録されている。そして、成長値が小さい間は、性格値とは関係なく、動作トリガーに応じて設定される基本動作が選択され、成長値が増加すると、性格値に応じて設定される性格動作が選択されるように、動作選択確率が設定されている。また、成長値が増加するほど、選択されうる基本動作の種類が増加するように、動作選択確率が設定されている。なお、図11では、各動作トリガーに対して選択される性格動作を1つとしているが、基本動作と同様に、性格値の増加に応じて、選択される性格動作の種類を増加させてもよい。
【0051】
例えば、ロボット200の現在の性格値が、図10に示すように、性格値(陽気)が3、性格値(活発)が8、性格値(シャイ)が5、性格値(甘えん坊)が4であり、マイクロフォン213で大きな音を検出した場合を想定する。この場合、成長値は4つの性格値の中の最大値である8となり、動作トリガーは「大きな音がする」となる。そして、図11に示す成長テーブル123で、動作トリガーが「大きな音がする」で成長値が8の項目を参照すると、動作選択確率は、「基本動作2-0」が20%、「基本動作2-1」が20%、「基本動作2-2」が40%、「性格動作2-0」が20%であることがわかる。
【0052】
つまり、この場合は、「基本動作2-0」が20%、「基本動作2-1」が20%、「基本動作2-2」が40%、「性格動作2-0」が20%の確率で選択される。そして、「性格動作2-0」が選択された場合は、4つの性格値に応じて、図12に示すような4種類の性格動作のいずれかの選択がさらに行われる。そして、ロボット200はここで選択された動作を実行する。この仕組みは後述する動作制御処理で実現される。なお、性格動作の中から動作を選択する動作モードを第1動作モードといい、基本動作の中から動作を選択する動作モードを第2動作モードという。
【0053】
後述するが、性格動作は、4つの性格値それぞれの大きさに応じた確率で選択されるため、性格値の値が小さい(例えばほとんどが0)間は選択のバリエーションが少ない。そこで、本実施形態では、4つの性格値の中の最大値を成長値としている。これにより、性格動作として選択される動作のバリエーションが豊富になった時に第1動作モードが選択されるという効果がある。なお、性格値によって選択される動作のバリエーションが豊富になるか否かの判断指標としては、最大値だけでなく、合計値、平均値、最頻値等も使用可能であるので、成長値として、性格値の合計値、平均値、最頻値等を用いるようにしてもよい。
【0054】
なお、成長テーブル123は、動作トリガー毎に、成長値を引数として各動作種類の動作選択確率を返す関数(成長関数)として定義できればその形態は任意であり、必ずしも図11に示すような表形式のデータである必要はない。
【0055】
動作内容テーブル124は、図12に示すように、成長テーブル123で規定された各動作種類の具体的な動作内容が記録されたテーブルである。ただし、性格動作については、性格の種類毎に、動作内容が規定される。なお、動作内容テーブル124は必須のデータではない。例えば、成長テーブル123の動作種類の項目に、具体的な動作内容を直接記録する形で成長テーブル123を構成すれば、動作内容テーブル124は不要である。
【0056】
モーションテーブル125は、図13に示すように、成長テーブル123で規定された各動作種類について、処理部110が、ひねりモータ221や上下モータ222をどのように制御するのかを記録したテーブルである。具体的には、図13に示すように、動作種類毎に、各行に、動作時間(ミリ秒)、当該動作時間後のひねりモータ221の動作角度、当該動作時間後の上下モータ222の動作角度、がそれぞれ記録されている。なお、本実施形態では、各動作種類においてスピーカ231から出力する音声データについても記録されている。
【0057】
例えば、後述する動作制御処理によって、基本動作2-0が選択された場合、処理部110は、まず100ミリ秒後にひねりモータ221も上下モータ222も角度が0度になるように制御し、その100ミリ秒後に上下モータ222の角度が-24度になるように制御する。そして、その後700ミリ秒間は回転させず、その500ミリ秒後にひねりモータ221の角度は34度、上下モータ222の角度は-24度になるように制御する。そして、その400ミリ秒後にひねりモータ221の角度は-34度になるように制御し、その500ミリ秒後にひねりモータ221も上下モータ222も角度が0度になるように制御して、基本動作2-0の動作を完了する。また、処理部110は、上述したひねりモータ221及び上下モータ222の駆動と並行して、短くピイと鳴く声の音声データにより、スピーカ231から短くピイと鳴く声を再生する。
【0058】
成長日数データ126は、初期値が1であり、1日経過する度に1ずつ加算されていく。成長日数データ126により、ロボット200の疑似的な成長日数(疑似的な生誕からの日数)が表されることになる。ここでは、成長日数データ126で表される成長日数の期間を、第2期間と呼ぶことにする。
【0059】
次に、図14及び図15に示すフローチャートを参照しながら、機器の制御装置100の処理部110が実行する動作制御処理について説明する。動作制御処理は、機器の制御装置100が、センサ部210からの検出値、バッテリー残量等に基づいて、ロボット200の駆動部や音の出力を制御する処理である。ユーザがロボット200の電源を入れると、他の必要な処理と並行に、この動作制御処理のスレッドが実行開始される。動作制御処理により、駆動部220や出力部230(音出力部)が制御され、ロボット200の動きが表現されたり、鳴き声や歌等の音が出力されたりする。
【0060】
まず、処理部110は、感情データ121、感情変化データ122、成長日数データ126等の各種データを設定する(ステップS101)。ロボット200の最初の起動時(工場出荷後のユーザによる初回の起動時)は、これらの値には初期値(感情データ121、感情変化データ122、及び成長日数データ126の初期値はいずれも、値0)が設定されるが、2度目以降の起動時は、前回のロボット制御処理の後述するステップS109で保存されたデータの値が設定される。ただし、感情データ121については、電源を入れるたびに全て0に初期化される仕様としてもよい。
【0061】
次に、処理部110は、センサ部210で検出される外部刺激があるか否かを判定する(ステップS102)。外部刺激があるなら(ステップS102;Yes)、処理部110は、センサ部210から外部刺激を取得する(ステップS103)。
【0062】
そして、処理部110は、ステップS103で取得された外部刺激に応じて、感情データ121に加算又は減算する感情変化データ122を取得する(ステップS104)。具体的には、例えば、外部刺激として頭部204のタッチセンサ211により頭部204が撫でられたことを検出すると、ロボット200は疑似的な安心感を得るので、処理部110は、感情データ121のX値に加算する感情変化データ122としてDXPを取得する。
【0063】
そして、処理部110は、ステップS104で取得された感情変化データ122に応じて感情データ121を設定する(ステップS105)。具体的には、例えば、ステップS104で感情変化データ122としてDXPが取得されていたなら、処理部110は、感情データ121のX値に感情変化データ122のDXPを加算する。ただし、感情変化データ122を加算すると感情データ121の値(X値、Y値)が感情マップ300の最大値を超える場合には、感情データ121の値は感情マップ300の最大値に設定される。また、感情変化データ122を減算すると感情データ121の値が感情マップ300の最小値未満になる場合には、感情データ121の値は感情マップ300の最小値に設定される。
【0064】
ステップS104及びステップS105において、外部刺激の各々に対して、どのような感情変化データ122が取得されて、感情データ121が設定されるかは任意に設定可能であるが、ここでは、以下に一例を示す。なお、感情データ121のX値及びY値は感情マップ300のサイズによって最大値及び最小値が規定されているため、以下の演算によって感情マップ300の最大値を上回る場合には最大値が、感情マップ300の最小値を下回る場合には最小値が、それぞれ設定される。
【0065】
頭部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で検出可能)
優しい声で呼びかけられる(平穏になる):X=X+DXP及びY=Y-DYM
大きな声で怒鳴られる(イライラする):X=X-DXM及びY=Y+DYP
(これらの外部刺激はマイクロフォン213で検出可能)
【0066】
例えば、頭部204を撫でられると、ロボット200の疑似的な感情は安心するので、感情データ121のX値に感情変化データ122のDXPが加算される。逆に、頭部204を叩かれると、ロボット200の疑似的な感情は不安になり、感情データ121のX値から感情変化データ122のDXMが減算される。ステップS103で処理部110は、センサ部210が備える複数のセンサにより、互いに異なる種類の複数の外部刺激を取得しているので、これら複数の外部刺激の各々に応じて感情変化データ122が取得され、取得された感情変化データ122に応じて感情データ121が設定されることになる。
【0067】
そして、処理部110は、ステップS103で取得した外部刺激の情報を動作トリガーとして動作選択処理を実行し(ステップS106)、その後、ステップS108に進む。なお、動作選択処理の詳細は後述するが、動作トリガーとは、ロボット200が何らかの動作を行うきっかけとなった外部刺激等の情報である。
【0068】
一方、ステップS102で外部刺激がないなら(ステップS102;No)、処理部110は、呼吸動作等の自発的な動作を行うか否かを判定する(ステップS107)。自発的な動作を行うか否かの判定方法は任意だが、本実施形態では、第1基準時間(例えば4秒)毎にステップS107の判定がYesになるものとする。
【0069】
自発的な動作を行うなら(ステップS107;Yes)、処理部110は、ステップS106に進んで、「第1基準時間経過」を動作トリガーとして動作選択処理を実行し、その後、ステップS108に進む。
【0070】
自発的な動作を行わないなら(ステップS107;No)、図15に進み、処理部110は、残量通知刺激を取得したか否かを判定する(ステップS121)。残量通知刺激とは、バッテリー残量を通知する動作を行うトリガーとなる外部刺激であり、本実施形態では「頭を上にして抱っこされて、頭部204を撫でられる」であるものとする。この外部刺激(残量通知刺激)は加速度センサ212及び頭部204のタッチセンサ211で検出できる。
【0071】
残量通知刺激を取得したら(ステップS121;Yes)、処理部110は、バッテリー残量を通知するべき通知条件が満たされたと判定し、後述する残量通知動作処理を行う(ステップS122)。そして、ステップS123に進む。残量通知刺激を取得しなければ(ステップS121;No)、ステップS123に進む。
【0072】
ステップS123では、処理部110は、前回残量確認処理を実行してから残量確認時間が経過したか否かを判定する。残量確認時間とは、バッテリー残量を定期的に確認する時間間隔であり、本実施形態では10分であるものとする。
【0073】
残量確認時間が経過していたら(ステップS123;Yes)、処理部110は、後述する残量確認処理を行い(ステップS124)、ステップS125に進む。残量確認時間が経過していなければ(ステップS123;No)、ステップS125に進む。
【0074】
ステップS125では、処理部110は、通信部130を介して、外部のスマートフォン等から残量通知要求を受信したか否かを判定する。残量通知要求とは、ロボット200に対し、バッテリー残量の情報を送信する要求を行うリクエストパケットであり、スマートフォン等から無線LAN等を介して送信される。
【0075】
残量通知要求を受信したら(ステップS125;Yes)、処理部110は、残量通知要求を送信した装置(外部のスマートフォン等)に対し、バッテリー残量の情報を送信し(ステップS126)、ステップS127に進む。残量通知要求を受信していなければ(ステップS125;No)、ステップS127に進む。
【0076】
ステップS127では、処理部110は、前回気温確認処理を実行してから気温確認時間が経過したか否かを判定する。気温確認時間とは、気温を定期的に確認する時間間隔であり、本実施形態では10分であるものとする。
【0077】
気温確認時間が経過していたら(ステップS127;Yes)、処理部110は、後述する気温確認処理を行い(ステップS128)、その後図14に戻ってステップS108に進む。気温確認時間が経過していなければ(ステップS127;No)、図14に戻ってステップS108に進む。
【0078】
ステップS108では、処理部110は、処理を終了するか否かを判定する。例えば、操作部240が、ユーザによるロボット200の電源OFFの指示を受け付けたら、処理を終了することになる。処理を終了するなら(ステップS108;Yes)、処理部110は、感情データ121、感情変化データ122、成長日数データ126等の各種データを記憶部120の不揮発性メモリ(例えばフラッシュメモリ)に保存し(ステップS109)、動作制御処理を終了する。なお、電源OFF時に各種データを不揮発性メモリに保存する処理については、別途、電源OFF判定スレッドを動作制御処理等の他のスレッドと並行に動作させて行うようにしてもよい。電源OFF判定スレッドでステップS108及びステップS109に相当する処理を行うようにすれば、動作制御処理のステップS108及びステップS109の処理は省略することができる。
【0079】
処理を終了しないなら(ステップS108;No)、処理部110は、クロック機能により、日付が変わったか否かを判定する(ステップS110)。日付が変わっていないなら(ステップS110;No)、ステップS102に戻る。
【0080】
日付が変わったなら(ステップS110;Yes)、処理部110は、第1期間中であるか否かを判定する(ステップS111)。第1期間を、ロボット200の疑似的な生誕(例えば購入後のユーザによる初回の起動時)から例えば50日の期間とすると、処理部110は、成長日数データ126が50以下なら第1期間中であると判定する。第1期間中でないなら(ステップS111;No)、ステップS115に進む。
【0081】
第1期間中なら(ステップS111;Yes)、処理部110は、感情変化データ122の学習を行う(ステップS113)。具体的には、その日のステップS105において、感情データ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を更新する。この更新を、感情変化データ122の学習ともいう。
【0082】
ただし、感情変化データ122の各値が大きくなりすぎると、感情データ121の1回の変化量が大きくなりすぎるので、感情変化データ122の各値は例えば20を最大値とし、それ以下に制限する。また、ここでは、感情変化データ122のいずれに対しても1を加算することとしたが、加算する値は1に限定されない。例えば、感情データ121の各値が感情マップ300の最大値又は最小値に設定された回数をカウントして、その回数が多い場合には、感情変化データ122に加算する数値を増やすようにしてもよい。
【0083】
ステップS113での感情変化データ122の学習は、ステップS105で感情データ121が感情マップ300の最大値又は最小値に設定されるか否かに基づく。そして、ステップS105で感情データ121が感情マップ300の最大値又は最小値に設定されるか否かは、ステップS103で取得された外部刺激に基づく。そして、ステップS103では、センサ部210が備える複数のセンサにより、互いに異なる種類の複数の外部刺激が取得されるので、これら複数の外部刺激の各々に応じて、感情変化データ122の各々が学習されることになる。
【0084】
例えば、頭部204のみが何度も撫でられると感情変化データ122のDXPのみが増加し、他の感情変化データ122は変化しないので、ロボット200は安心しやすい性格になる。また、頭部204のみが何度も叩かれると感情変化データ122のDXMのみが増加し、他の感情変化データ122は変化しないので、ロボット200は不安になりやすい性格になる。このように、処理部110は、外部刺激の各々に応じて、感情変化データ122を互いに異ならせるように学習する。本実施形態では、感情変化データ122から性格値が算出され、性格値の最大値が成長値となるため、ユーザのロボット200への接し方に基づいてロボット200が疑似的に成長する効果を得ることができる。
【0085】
なお、本実施形態では、その日1日の期間でステップS105において、感情データ121のX値やY値が1度でも感情マップ300の最大値や最小値に達したら、感情変化データ122を学習させている。しかし、感情変化データ122を学習させる条件はこれに限らない。例えば、感情データ121のX値やY値が1度でも所定の値(例えば、感情マップ300の最大値の0.5倍の値や最小値の0.5倍の値)に達したら感情変化データ122を学習させてもよい。また、期間に関しても、その日1日の期間に限らず、半日や1週間等の他の期間で、感情データ121のX値やY値が1度でも所定の値に達したら、感情変化データ122を学習させるようにしてもよい。また、1日等の一定の期間ではなく、外部刺激の取得回数が所定回数(例えば50回)に達するまでの期間で、感情データ121のX値やY値が1度でも所定の値に達したら、感情変化データ122を学習させるようにしてもよい。
【0086】
図14に戻り、処理部110は、感情マップ300を最大値、最小値ともに、2だけ拡大する(ステップS114)。なお、ここでは、感情マップ300を最大値、最小値ともに、2だけ拡大することとしたが、この拡大する数値「2」はあくまでも一例であり、3以上拡大してもよいし、1だけ拡大してもよい。また感情マップ300の軸毎、また最大値と最小値とで、拡大する数値が同じでなくてもよい。そして、処理部110は、成長日数データ126に1を加算し、感情データをX値、Y値ともに0に初期化して(ステップS115)、ステップS102に戻る。
【0087】
なお、図14では、感情変化データの学習及び感情マップの拡大は、ステップS110で日付が変わったのを判定してから行われるものとしているが、基準時刻(例えば午後9時)になったことを判定してから行われるようにしてもよい。また、ステップS110での判定は、実際の日付で判定するのではなく、ロボット200が電源ONになっている時間を処理部110のタイマー機能で累計した値に基づいて判定してもよい。例えば、電源ONの累計時間が24の倍数の時間になる毎に、ロボット200が1日成長したとみなして、感情変化データの学習及び感情マップの拡大が行われるようにしてもよい。また、ロボット200を放置しがちなユーザを考慮して(放置された場合にはロボット200の成長が遅くなるように)、外部刺激の取得回数に基づいて(例えば、取得回数が100回になる毎に1日成長したとみなす)判定をしてもよい。
【0088】
次に、上述の動作制御処理のステップS106で実行される動作選択処理について、図16を参照して説明する。
【0089】
まず、処理部110は、ステップS113で学習された感情変化データ122に基づいて、性格値を算出する(ステップS201)。具体的には、以下のように4つの性格値を算出する。感情変化データ122はそれぞれ初期値が10で最大20まで増加するため、ここでは10を減算することによって値の範囲を0以上10以下にしている。
性格値(陽気)=DXP-10
性格値(シャイ)=DXM-10
性格値(活発)=DYP-10
性格値(甘えん坊)=DYM-10
【0090】
次に、処理部110は、これらの性格値の中で最も大きい数値を成長値として算出する(ステップS202)。そして、処理部110は、成長テーブル123を参照して、動作選択処理を実行する際に与えられた動作トリガーと、ステップS202で算出した成長値と、に対応する各動作種類の動作選択確率を取得する(ステップS203)。
【0091】
次に、処理部110は、ステップS203で取得した各動作種類の動作選択確率に基づき、乱数を用いて動作種類を選択する(ステップS204)。例えば、算出した成長値が8、動作トリガーは「大きな音がする」の場合、20%の確率で「基本動作2-0」が選択され、20%の確率で「基本動作2-1」が選択され、40%の確率で「基本動作2-2」が選択され、20%の確率で「性格動作2-0」が選択される(図12参照)。
【0092】
そして、処理部110は、ステップS204で性格動作が選択されたか否かを判定する(ステップS205)。性格動作が選択されておらず、すなわち、基本動作が選択されていれば(ステップS205;No)、ステップS208に進む。
【0093】
性格動作が選択されていたら(ステップS205;Yes)、処理部110は、各性格値の大きさに基づいて、各性格の選択確率を取得する(ステップS206)。具体的には、各性格について、その性格に対応する性格値を4つの性格値の合計値で割った値をその性格の選択確率とする。
【0094】
そして、処理部110は、ステップS206で取得した各性格の選択確率に基づき、乱数を用いて性格動作を選択する(ステップS207)。例えば、性格値(陽気)が3、性格値(活発)が8、性格値(シャイ)が5、性格値(甘えん坊)が4の場合、これらの合計値は3+8+5+4=20である。したがって、この場合、「陽気」の性格動作が3/20=15%の確率で、「活発」の性格動作が8/20=40%の確率で、「シャイ」の性格動作が5/20=25%の確率で、「甘えん坊」の性格動作が4/20=20%の確率で、それぞれ選択されることになる。
【0095】
次に、処理部110は、ステップS204又はS207で選択された動作を実行し(ステップS208)、動作選択処理を終了して、動作制御処理のステップS108に進む。
【0096】
次に、上述の動作制御処理のステップS122で実行される残量通知動作処理について、図17を参照して説明する。
【0097】
まず、処理部110は、電源制御部250からバッテリー残量を取得する(ステップS130)。そして、処理部110は、取得したバッテリー残量が第1残量通知閾値(例えば80%)以上であるか否かを判定する(ステップS131)。バッテリー残量が第1残量通知閾値以上なら(ステップS131;Yes)、処理部110は、バッテリー残量が第1残量通知閾値以上ある(例えばバッテリー残量がまだ十分ある)ことを示す動作である第1通知動作を実行する(ステップS132)。第1通知動作をどのような動作にするかは任意であるが、本実施形態では、第1通知動作は、元気な声で3回歌う動作である。具体的には、処理部110は、駆動部220を制御して頭部204を元気よく動かしながら、元気な声でロボット200が歌っている音声データを3回、スピーカ231から出力する。そして、残量通知動作処理を終了し、処理を動作制御処理のステップS123に進める。
【0098】
バッテリー残量が第1残量通知閾値未満なら(ステップS131;No)、処理部110は、バッテリー残量が第2残量通知閾値(例えば40%)以上あるか否かを判定する(ステップS133)。バッテリー残量が第2残量通知閾値以上なら(ステップS133;Yes)、処理部110は、バッテリー残量が第1残量通知閾値未満かつ第2残量通知閾値以上ある(例えば、バッテリー残量が半分くらいになっている)ことを示す動作である第2通知動作を実行する(ステップS134)。第2通知動作をどのような動作にするかは任意であるが、本実施形態では、第2通知動作は、普通の声で2回歌う動作である。具体的には、処理部110は、駆動部220を制御して頭部204を普通に動かしながら、普通の声でロボット200が歌っている音声データを2回、スピーカ231から出力する。そして、残量通知動作処理を終了し、処理を動作制御処理のステップS123に進める。
【0099】
バッテリー残量が第2残量通知閾値未満なら(ステップS133;No)、処理部110は、バッテリー残量が第2残量通知閾値未満になっている(例えばバッテリー残量が半分以下になっている)ことを示す動作である第3通知動作を実行する(ステップS135)。第3通知動作をどのような動作にするかは任意であるが、本実施形態では、第3通知動作は、元気のない声で1回歌う動作である。具体的には、処理部110は、駆動部220を制御して頭部204を元気ない様子で動かしながら、元気のない声でロボット200が歌っている音声データを1回、スピーカ231から出力する。そして、残量通知動作処理を終了し、処理を動作制御処理のステップS123に進める。
【0100】
上述の残量通知動作処理により、処理部110は、残量通知刺激(例えば、抱っこされて頭を撫でられる)を検出したら、駆動部220や出力部230(音出力部)を制御する制御態様を、バッテリー残量に応じて、頭部204を動かしながら歌い声を出力する制御態様に変更する。したがって、ユーザはバッテリー残量を知りたいと思った時には、残量通知刺激(例えば、ロボット200を抱っこして頭を撫でる)をロボット200に与えた時のロボット200の反応により、バッテリー残量を知ることができる。残量通知刺激としては、ペットを愛でるような操作を設定することが可能であるため、ロボット200は、生き物感を失わずにバッテリー残量をユーザに知らせることができる。また、バッテリー残量が少なくなればなるほど、ロボット200は歌を歌う回数を少なくしたり、歌声から元気さを失わせたりするようにしているため、生き物感を失うことなく、ユーザに充電の必要度合いを知らせることができる。
【0101】
なお、上述のロボット200が歌っている音声データは、ロボット200の歌声のサンプリングデータとして予め生成され、記憶部120に記憶されているものとする。また、ロボット200の性格(例えば、性格値の中で最も大きな値に対応する性格)に応じて、出力する音声データを変更したり、頭部204の動かし方を変更したり、通知動作自体を変更したりしてもよい。
【0102】
次に、上述の動作制御処理のステップS124で実行される残量確認処理について、図18を参照して説明する。
【0103】
まず、処理部110は、電源制御部250からバッテリー残量を取得する(ステップS140)。そして、処理部110は、バッテリー残量が第1残量閾値(例えば50%)以上であるか否かを判定する(ステップS141)。バッテリー残量が第1残量閾値以上なら(ステップS141;Yes)、残量確認処理を終了し、処理を動作制御処理のステップS125に進める。
【0104】
バッテリー残量が第1残量閾値未満なら(ステップS141;No)、処理部110は、バッテリー残量を通知するべき通知条件が満たされたと判定し、バッテリー残量が第2残量閾値(例えば30%)以上であるか否かを判定する(ステップS142)。バッテリー残量が第2残量閾値以上なら(ステップS142;Yes)、処理部110は、バッテリー残量が第1残量閾値未満かつ第2残量閾値以上ある(例えば、バッテリー残量が半分以下になっている)ことを自発的に示す動作である第1自発通知動作を実行する(ステップS143)。第1自発通知動作をどのような動作にするかは任意であるが、本実施形態では、第1自発通知動作は、ロボット200が2秒間震える動作である。具体的には、処理部110は、後述する振動動作処理を、振動回数Nを2秒間に相当する回数(例えば20)に設定して、1回実行する。そして、残量確認処理を終了し、処理を動作制御処理のステップS125に進める。
【0105】
バッテリー残量が第2残量閾値未満なら(ステップS142;No)、処理部110は、バッテリー残量が第3残量閾値(例えば10%)以上あるか否かを判定する(ステップS144)。バッテリー残量が第3残量閾値以上なら(ステップS144;Yes)、処理部110は、バッテリー残量が第2残量閾値未満かつ第3残量閾値以上ある(例えば、バッテリー残量がかなり減っている)ことを自発的に示す動作である第2自発通知動作を実行する(ステップS145)。第2自発通知動作をどのような動作にするかは任意であるが、本実施形態では、第2自発通知動作は、ロボット200が2秒間震える動作を2回繰り返す動作である。具体的には、処理部110は、後述する振動動作処理を、振動回数Nを2秒間に相当する回数(例えば20)に設定し、0.5秒程度の間隔をおいて、2回実行する。そして、残量確認処理を終了し、処理を動作制御処理のステップS125に進める。
【0106】
バッテリー残量が第3残量閾値未満なら(ステップS144;No)、処理部110は、バッテリー残量が第3残量閾値未満になっている(例えば、バッテリー残量がほとんど残っていない)ことを自発的に示す動作である第3自発通知動作を実行する(ステップS146)。第3自発通知動作をどのような動作にするかは任意であるが、本実施形態では、第3自発通知動作は、ロボット200が5秒間震える動作である。具体的には、処理部110は、後述する振動動作処理を、振動回数Nを5秒間に相当する回数(例えば50)に設定して、1回実行する。そして、残量確認処理を終了し、処理を動作制御処理のステップS125に進める。
【0107】
上述の残量確認処理により、処理部110は、バッテリー残量に基づいて、駆動部220や出力部230(音出力部)を制御する制御態様を、可動部を駆動してロボット200を振動させる制御態様に変更する。したがって、上述の自発通知動作により、バッテリー残量が第1残量閾値未満になると、ロボット200は体を震わせて、充電して欲しいことをユーザに知らせることができる。実際のペット等でも体調が悪いときには体を震わせることがあり、体を震わせることで、ユーザはロボット200の体調が悪い、すなわち充電が必要ということを知ることができる。したがって、ロボット200は生き物感を失うことなく、ユーザに充電が必要なことを知らせることができる。また、バッテリー残量が少なくなればなるほど、ロボット200は体を振動させる回数を多くしたり、振動させる時間を長くしたりするため、生き物感を失うことなく、ユーザに充電の必要度合いを知らせることができる。
【0108】
なお、ロボット200の性格(例えば、性格値の中で最も大きな値に対応する性格)に応じて、自発通知動作を変更してもよい。例えば、バッテリー残量がほとんど残っていないことを示す第3自発通知動作として、処理部110は、体を震わせる制御を行うだけでなく、性格に応じた音を出力する制御を行ってもよい。この場合の例として、例えば、性格値のうち最も大きな値に対応する性格が、「陽気」なら「クシャミをする音」を出力し、「活発」なら「唸る音」を出力し、「シャイ」なら鳴かず(何も音を出力せず)、「甘えん坊」なら「甘えるような鳴き声」を出力することが考えられる。このように性格に応じた自発通知動作とすることにより、さらに生き物感を表現することができるようになる。
【0109】
なお、クシャミの音、唸る音、甘えるような鳴き声等は、上述のロボット200の歌声と同様に、音のサンプリングデータとして予め生成され、記憶部120に記憶されているものとする。
【0110】
次に、上述の動作制御処理のステップS128で実行される気温確認処理について、図19を参照して説明する。
【0111】
まず、処理部110は、温度センサ215から気温を取得する(ステップS150)。そして、処理部110は、気温が第1気温閾値(例えば摂氏18度)以上であるか否かを判定する(ステップS151)。気温が第1気温閾値以上なら(ステップS151;Yes)、気温確認処理を終了し、処理を動作制御処理のステップS108に進める。
【0112】
気温が第1気温閾値未満なら(ステップS151;No)、処理部110は、気温通知条件が満たされたとして、気温が第2気温閾値(例えば摂氏10度)以上であるか否かを判定する(ステップS152)。気温が第2気温閾値以上なら(ステップS152;Yes)、処理部110は、気温が第1気温閾値未満かつ第2気温閾値以上である(例えば、少し寒い)ことを示す動作である第1気温通知動作を実行する(ステップS153)。第1気温通知動作をどのような動作にするかは任意であるが、本実施形態では、第1気温通知動作は、ロボット200が1秒間震える動作を1回行う動作である。具体的には、処理部110は、後述する振動動作処理を、振動回数Nを1秒に相当する回数(例えば10)に設定して、実行する。そして、気温確認処理を終了し、処理を動作制御処理のステップS108に進める。
【0113】
気温が第2気温閾値未満なら(ステップS152;No)、処理部110は、気温が第3気温閾値(例えば摂氏0度)以上あるか否かを判定する(ステップS154)。気温が第3気温閾値以上なら(ステップS154;Yes)、処理部110は、気温が第2気温閾値未満かつ第3気温閾値以上である(例えば、かなり寒い)ことを示す動作である第2気温通知動作を実行する(ステップS155)。第2気温通知動作をどのような動作にするかは任意であるが、本実施形態では、第2気温通知動作は、ロボット200が1秒間震える動作を2回繰り返す動作である。具体的には、処理部110は、後述する振動動作処理を、振動回数Nを1秒間に相当する回数(例えば10)に設定し、0.5秒程度の間隔をおいて、2回実行する。そして、気温確認処理を終了し、処理を動作制御処理のステップS108に進める。
【0114】
気温が第3気温閾値未満なら(ステップS154;No)、処理部110は、気温が第3気温閾値未満である(例えば、非常に寒い)ことを示す動作である第3気温通知動作を実行する(ステップS156)。第3気温通知動作をどのような動作にするかは任意であるが、本実施形態では、第3気温通知動作は、ロボット200が1秒間震える動作を3回繰り返す動作である。具体的には、処理部110は、後述する振動動作処理を、振動回数Nを1秒間に相当する回数(例えば10)に設定し、0.5秒程度の間隔をおいて、3回実行する。そして、気温確認処理を終了し、処理を動作制御処理のステップS108に進める。
【0115】
上述の気温通知処理により、ロボット200は、気温が低くなると、体を震わせるので、気温が低いことをユーザに自然な形で知らせることができるとともに、ロボット200を本物の生き物のように見せることができる。
【0116】
次に、上述の残量確認処理及び気温確認処理において、処理部110が、ロボット200の体を震えさせるときに実行する振動動作処理について、図20を参照して説明する。
【0117】
まず、処理部110は、振動回数Nを設定する(ステップS161)。そして処理部110は、駆動部220の上下モータ222に対し、図21に示すように、下方に準備角度610だけ回転させる指示を出して、頭部204を下げる(ステップS162)。準備角度610は20度以上60度以下の角度(例えば30度)である。処理部110が上下モータ222に準備角度610の回転を行わせる制御を準備制御という。処理部110が準備制御を行うことにより、ロボット200は、図21に示すように、頭部204の後端部と胴体部206の前端部とが載置面600から浮き、頭部204の前端部と胴体部206の後端部とが載置面600に接触する態勢になる。ロボット200がこの態勢になることにより、この後に行う振動制御でロボット200を効率的に震えさせることができるようになる。
【0118】
そして、処理部110は、駆動部220のひねりモータ221に対し、図22に示すように、第1正転角度611だけ正転させる指示を出すことにより、頭部204を回転させる(ステップS163)。第1正転角度611は、15度以上60度以下の角度(例えば30度)である。
【0119】
次に、処理部110は、第1待機時間待機する(ステップS164)。第1待機時間は0.03秒以上0.1秒以下の時間(例えば50ミリ秒)である。そして、処理部110は、駆動部220のひねりモータ221に対し、図23に示すように、第1逆転角度612だけ逆転させる指示を出すことにより、頭部204を回転させる(ステップS165)。第1逆転角度612は、15度以上60度以下の角度(例えば30度)である。
【0120】
次に、処理部110は、第1待機時間待機する(ステップS166)。そして、処理部110は、振動回数Nを1減らし(ステップS167)、Nが0より大きいか否かを判定する(ステップS168)。
【0121】
振動回数Nが0より大きければ(ステップS168;Yes)、ステップS163に戻る。振動回数Nが0以下なら(ステップS168;No)、処理部110は、振動動作処理を終了する。
【0122】
上述の振動動作処理において、ステップS163からステップS166までの制御を単位振動制御といい、この単位振動制御を振動回数Nだけ繰り返す制御を振動制御という。振動制御により図22及び図23に示すように頭部204と胴体部206とが交互に反対側に回転するため、これを高速に行うことにより、振動モータがなくても、処理部110はロボット200の体を震わせることができる。なお、単位振動制御による動作を1回完了するのに必要な時間を第1単位時間という。
【0123】
振動を効果的に発生させるには、振動制御を高速に行うことが必要である。したがって、上述の振動動作処理でロボット200が体を震わせているように見えるようにするためには、第1単位時間を0.3秒以下にすることが望ましい。また、振動制御においては回転角度の設定よりも反転するまでの時間の設定が重要であり、上述の振動動作処理では、第1待機時間待機後にすぐにひねりモータ221の回転を反転させることにより高速な反転を実現させている。第1待機時間はあまり短いと回転角度が小さくなりすぎてしまって振動が小さくなってしまうが、長いと振動制御を高速に行うことができなくなるので、0.03秒以上0.1秒以下の値にすることが望ましい。
【0124】
また、上述の振動動作処理では、処理部110は、駆動部220のひねりモータ221に対し、ステップS163で第1正転角度611だけ正転させる指示を出した後に、ステップS165で第1逆転角度612だけ逆転させる指示を出しているが、ステップS163とステップS165は、逆の順番で行ってもよい。すなわち、処理部110は、駆動部220のひねりモータ221に対し、第1正転角度611だけ正転させる指示又は第1逆転角度612だけ逆転させる指示の一方を出した後に、第1正転角度611だけ正転させる指示又は第1逆転角度612だけ逆転させる指示の他方を出せばよい。
【0125】
残量確認処理ではバッテリー残量に応じて振動動作処理によってロボット200の体を震わせることにより、ロボット200の体調が悪いかのように見える表現を行うことができ、生き物感を失うことなく、ユーザにロボット200のバッテリーの充電が必要なことを知らせることができる。
【0126】
また、気温確認処理では気温に応じて振動動作処理によってロボット200の体を震わせることにより、ロボット200が寒さを感じているかのように見える表現を行うことができ、さらに生き物感を向上させることができる。
【0127】
なお、上述の動作選択処理において、ロボット200の動作を選択する際に感情データ121を参照して、動作の選択に感情データ121の値を反映させるようにしてもよい。例えば、成長テーブル123を感情データ121の値に応じて複数用意して感情表現を豊かに行う動作の種類を設定しておき、その時点の感情データ121の値に対応した成長テーブル123を用いて動作を選択したり、モーションテーブル125に記録されている各動作の動作選択確率の値を感情データ121の値に応じて調整したりしてもよい。これにより、ロボット200は、より現在の感情を反映した動作を行うことができるようになる。
【0128】
また、図15のステップS107での判定がYesとなった場合には、ステップS106の動作選択処理において、自発的な動作として呼吸動作や性格に伴う動作が行われるが、その際には、感情データ121のX値及びY値に応じた動作が行われるようにしてもよい。
【0129】
また、感情データ121のY値は、正の方向が興奮度に、負の方向が無気力度に対応するので、ロボット200が出力する鳴き声の音量をY値に応じて変更してもよい。すなわち、処理部110は、感情データ121のY値が正の値で大きいほどスピーカ231から出力する鳴き声の音量を上げ、Y値が負の値で小さいほどスピーカ231から出力する鳴き声の音量を下げるようにしてもよい。
【0130】
また、成長テーブル123は、ロボット200の用途(例えば、幼児向けの情操教育用、お年寄り向けの対話用等)によって、複数のバリエーションが用意されていてもよい。また、ロボット200の用途を変更したい場合等のために、通信部130を介して成長テーブル123を外部のサーバ等からダウンロードできるようになっていてもよい。
【0131】
また、上述の動作選択処理では、4つの性格値の中で最も大きい値を成長値として用いたが、成長値はこれに限定されない。例えば、成長日数データ126に基づいて成長値を設定してもよい(例えば、成長日数データ126を所定の値(例えば10)で割って小数点以下を切り捨てた値を成長値として用いる等)。ユーザに放置されたロボット200は、性格値の値が小さいままであることが多く、性格値の最大値を成長値とした場合には、性格動作が選択されない場合もあり得る。このような場合でも、成長日数データ126に基づいて成長値を設定すれば、ユーザによるお世話の頻度には関係なく、成長日数に応じて性格動作が選択されるようになる。また、性格値と成長日数データ126との両方に基づいて成長値を設定してもよい(例えば、性格値の中で最も大きい値と成長日数データ126との和を所定の値で割って小数点以下を切り捨てた値を成長値として用いる等)。
【0132】
また、上述の実施形態では、感情変化データ122に基づいて性格値を設定したが、性格値の設定方法は、この方法に限定されない。例えば、性格値を感情変化データ122に基づかずに、外部刺激データから直接的に設定してもよい。例えば、撫でられたら性格値(活発)を増加させ、叩かれたら性格値(シャイ)を減少させる等の方法が考えられる。また、性格値を感情データ121に基づいて設定してもよい。例えば、感情データ121のX値及びY値をそれぞれ1/10にした値を性格値にする等の方法が考えられる。
【0133】
以上説明した動作制御処理によれば、ロボット200に疑似的な感情(感情データ121)を持たせることができる。また、感情データ121を変化させる感情変化データ122を外部刺激に応じて学習することによって、ロボット200の個々が外部刺激に応じて異なる感情の変化を表すようになる結果、ロボット200の個々に疑似的な性格(性格値)を持たせることができる。また、感情変化データ122から性格が導出されるため、感情変化データ122をコピーすることによって、同一の性格を持つクローンロボットを生成することも可能になる。例えば、感情変化データ122のバックアップデータを保存しておけば、ロボット200が故障してしまっても、バックアップデータを復元することによって、同一の性格を持つロボット200を再生することができる。
【0134】
そして、性格値に基づいて算出される成長値が増加するほど、選択されうる動作のバリエーションが豊かになるので、ロボット200が疑似的に成長する(成長値が増加する)ことによって、より豊かな動作を表現することができるようになる。また、ロボット200は、成長が進んだら成長後の動作のみをするわけではなく、成長テーブル123で規定された動作選択確率に応じて以前から行われていた動作の全てから動作が選択され得る。したがって、ユーザはロボット200の成長後も、購入当初の頃の動作を時々見ることができ、より愛情を感じることができるようになる。
【0135】
また、ロボット200の疑似的な成長は、第1期間(例えば50日間)の間だけに限定され、その後の感情変化データ122(性格)は固定されるので、他の普通の機器のようにリセットをすることができず、ユーザにあたかも本当に生きているペットに接しているかのような感覚を生じさせることができる。
【0136】
また、疑似的な感情は複数の感情データ(感情データ121のX,Y)で表され、疑似的な性格は複数の感情変化データ(感情変化データ122のDXP,DXM,DYP,DYM)で表されるので、複雑な感情及び性格を表現することができる。
【0137】
そして、この疑似的な性格を導出するための感情変化データ122は、センサ部210が備える複数のセンサにより取得された互いに異なる種類の複数の外部刺激の各々に応じて学習されるので、ユーザのロボット200への接し方によって、多種多様な疑似的な性格を生成することができる。
【0138】
(変形例)
なお、本発明は、上述の実施形態に限定されず、種々の変形及び応用が可能である。例えば、ロボット200には感情や性格を持たせる必要はないと考えるユーザ向けに、動作制御処理において、感情や性格に関する処理を省略してもよい。この場合は、成長値を成長日数データ126から導出してもよい。また、成長値に関する処理も省略し、成長テーブル123を、動作トリガー毎に動作種類が一意に決定されるように構成してもよい。この場合は、動作選択処理では、動作トリガーに応じて選択される動作を実行すればよい。
【0139】
また、上述のモーションテーブル125は、ロボット200の駆動部220の動作(動作時間及び動作角度)並びに音声データが設定されていたが、駆動部220の動作のみ、又は音声データのみが設定されていてもよい。また駆動部220の動作及び音声データ以外の制御が設定されていてもよい。駆動部220の動作及び音声データ以外の制御としては、例えば、ロボット200の出力部230にLEDが備えられている場合には、点灯させるLEDの色や明るさを制御することが考えられる。処理部110により制御される被制御部としては、駆動部220と出力部230との少なくとも一方を含んでいればよい。そして、出力部230は音出力部として音のみを出力してもよいし、LED等により光のみを出力してもよい。
【0140】
また、上述の実施形態では、感情マップ300のサイズは、第1期間中にロボット200の疑似的な成長日数が1日増える度に、感情マップ300の最大値、最小値ともに2ずつ拡大されていった。しかし、感情マップ300のサイズの拡大はこのように均等に行われなくてもよい。例えば、感情データ121の変化の仕方に応じて、感情マップ300の拡大の仕方を変更してもよい。
【0141】
感情データ121の変化の仕方に応じて、感情マップ300の拡大の仕方を変更するには、例えば動作制御処理(図14)のステップS114において、以下のような処理を行えばよい。ある1日の間に、ステップS105において、感情データ121の値が1度でも感情マップ300の最大値に設定されたら、その後のステップS114において感情マップ300の最大値を3増加させる。ステップS105において感情データ121の値が1度も感情マップ300の最大値に到達しなかったら、その後のステップS114において感情マップ300の最大値を1増加させる。
【0142】
感情マップ300の最小値の方も同様に、その日に1度でも感情データ121の値が感情マップ300の最小値に設定されたら、感情マップ300の最小値を3減少させ、1度も感情データ121の値が感情マップ300の最小値に到達しなかったら、感情マップ300の最小値を1減少させる。このように、感情マップ300の拡大の仕方を変更することにより、感情データ121の設定可能範囲は、外部刺激に応じて学習されることになる。
【0143】
なお、上述の実施形態及び変形例では感情マップ300を第1期間中、常に拡大させていたが、感情マップ300の範囲の変更は拡大に限定されない。例えば外部刺激に応じ、ほとんど生じない感情の方向については、感情マップ300の範囲を縮小させてもよい。
【0144】
また、上述の実施形態では、ロボット200に機器の制御装置100が内蔵されている構成としたが、機器の制御装置100は、必ずしもロボット200に内蔵されている必要はない。例えば、図24に示すように、機器の制御装置101は、ロボット209に内蔵されずに別個の装置(例えばサーバ)として構成されてもよい。この変形例では、ロボット209も処理部260及び通信部270を備え、通信部130と通信部270とがお互いにデータを送受信できるように構成されている。そして、処理部110は、通信部130及び通信部270を介して、センサ部210が検出した外部刺激を取得したり、電源制御部250からバッテリー残量を取得したり、駆動部220や出力部230を制御したりする。
【0145】
なお、このように機器の制御装置101とロボット209とが別個の装置で構成されている場合、必要に応じて、ロボット209は処理部260により制御されるようになっていてもよい。例えば、単純な動作は処理部260で制御され、複雑な動作は通信部270を介して処理部110で制御される等である。
【0146】
また、上述の実施形態では、機器の制御装置100,101は、制御の対象となる機器をロボット200,209とした制御装置であるが、制御の対象となる機器は、ロボット200,209に限られない。制御の対象となる機器としては、例えば、腕時計等も考えられる。例えば、音声出力可能で加速度センサを備えた腕時計を制御の対象となる機器とする場合、外部刺激としては、加速度センサで検出される、腕時計に加わった衝撃等を想定することができる。そして、モーションテーブル125には、外部刺激に応じて出力する音声データを記録しておくことができる。そして、外部刺激に応じて感情データ121や感情変化データ122を更新し、検出した外部刺激や、その時点での感情変化データ122(性格)に基づいて、モーションテーブル125に設定されている音声データを出力させることが考えられる。
【0147】
そうすると、ユーザの扱い方によって、腕時計に個性(疑似的な性格)が生じることになる。つまり、同じ型番の腕時計であっても、ユーザが丁寧に扱っていれば、陽気な性格の腕時計になり、乱暴に扱っていればシャイな性格の腕時計になる。
【0148】
このように機器の制御装置100,101は、ロボットに限らず、様々な機器に適用することができる。そして機器に適用することにより、当該機器に疑似的な感情や性格を備えさせることができ、またユーザに、当該機器を疑似的に育てているように感じさせることができる。
【0149】
上述の実施形態において、処理部110のCPUが実行する動作プログラムは、あらかじめ記憶部120のROM等に記憶されていた。しかしながら、本発明は、これに限定されず、上述の各種処理を実行させるための動作プログラムを、既存の汎用コンピュータ等に実装することにより、上述の実施形態に係る機器の制御装置100,101に相当する装置として機能させてもよい。
【0150】
このようなプログラムの提供方法は任意であり、例えば、コンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、MO(Magneto-Optical Disc)、メモリカード、USBメモリ等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0151】
また、上述の処理をOS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(Bulletin Board System:BBS)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0152】
また、処理部110,260は、シングルプロセッサ、マルチプロセッサ、マルチコアプロセッサ等の任意のプロセッサ単体で構成されるものの他、これら任意のプロセッサと、ASIC(Application Specific Integrated Circuit)やFPGA(Field‐Programmable Gate Array)等の処理回路とが組み合わせられて構成されてもよい。
【0153】
本発明は、本発明の広義の精神と範囲とを逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、前述した実施形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0154】
(付記1)
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を制御する処理部を備え、
前記処理部は、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
機器の制御装置。
【0155】
(付記2)
前記処理部は、
前記取得したバッテリー残量が第1残量閾値未満なら、前記通知条件が満たされたとして、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
付記1に記載の機器の制御装置。
【0156】
(付記3)
前記処理部は、
前記機器に作用する外部刺激を取得し、
前記取得した外部刺激が所定の残量通知刺激なら、前記通知条件が満たされたとして、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
付記1又は2に記載の機器の制御装置。
【0157】
(付記4)
前記処理部による前記被制御部を制御する制御態様の変更は、前記可動部を駆動して前記機器を振動させる制御態様への変更である、
付記1から3のいずれか1つに記載の機器の制御装置。
【0158】
(付記5)
前記処理部は、
前記取得したバッテリー残量が小さいほど、前記機器を振動させる回数を多くするか、又は振動させる時間を長くする、
付記4に記載の機器の制御装置。
【0159】
(付記6)
前記処理部は、
前記機器の周囲の気温を取得し、
前記取得した気温が第1気温閾値未満になったら、気温通知条件が満たされたとして、前記取得した気温に基づいて、前記可動部を駆動して前記機器を振動させる、
付記1から5のいずれか1つに記載の機器の制御装置。
【0160】
(付記7)
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を備える機器の制御方法であって、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
機器の制御方法。
【0161】
(付記8)
機器の動きを表現するための可動部を駆動する駆動部と前記機器から音を出力する音出力部との少なくとも一方を含む被制御部を制御する処理部を備える前記機器を制御するコンピュータに、
前記機器のバッテリー残量を取得し、
前記機器のバッテリー残量を通知するべき通知条件が満たされたら、前記取得したバッテリー残量に基づいて、前記被制御部を制御する制御態様を変更する、
処理を実行させるプログラム。
【符号の説明】
【0162】
100,101…機器の制御装置、110,260…処理部、120…記憶部、121…感情データ、122…感情変化データ、123…成長テーブル、124…動作内容テーブル、125…モーションテーブル、126…成長日数データ、130,270…通信部、200,209…ロボット、201…外装、202…装飾部品、203…毛、204…頭部、205…連結部、206…胴体部、207…筐体、210…センサ部、211…タッチセンサ、212…加速度センサ、213…マイクロフォン、214…照度センサ、215…温度センサ、220…駆動部、221…ひねりモータ、222…上下モータ、230…出力部、231…スピーカ、240…操作部、241…電源スイッチ、250…電源制御部、255…ワイヤレス給電受信回路、300…感情マップ、301,302,303…枠、310,410…原点、311,312,411,412,413,414…軸、400…性格値レーダーチャート、600…載置面、610…準備角度、611…第1正転角度、612…第1逆転角度、BL…バスライン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24