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

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

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

特許7601040機器の制御装置、機器の制御方法及びプログラム
<>
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図1
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図2
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図3
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図4
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図5
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図6
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図7
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図8
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図9
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図10
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図11
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図12
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図13
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図14
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図15
  • 特許-機器の制御装置、機器の制御方法及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】機器の制御装置、機器の制御方法及びプログラム
(51)【国際特許分類】
   G04G 13/02 20060101AFI20241210BHJP
   A61B 5/16 20060101ALI20241210BHJP
   A61M 21/00 20060101ALI20241210BHJP
【FI】
G04G13/02 A
A61B5/16 130
A61M21/00 B
【請求項の数】 14
(21)【出願番号】P 2022047794
(22)【出願日】2022-03-24
(65)【公開番号】P2023141463
(43)【公開日】2023-10-05
【審査請求日】2023-04-10
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】金村 俊明
(72)【発明者】
【氏名】渋谷 敦
【審査官】藤澤 和浩
(56)【参考文献】
【文献】特開2007-199025(JP,A)
【文献】特開2009-45227(JP,A)
【文献】国際公開第2016/052100(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G04G 13/00-13/02
A61B 5/16
A61M 21/00-21/02
(57)【特許請求の範囲】
【請求項1】
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの起床時刻を日付と対応付けて記憶し、
前記記憶されている起床時刻のうち対応付けられている日付の属性が同一の前記起床時刻の代表値を前記属性の前記作動時刻として設定し、
前記属性の日付の前記作動時刻に前記機器に目覚まし動作を実行させる、
処理部を備える、
機器の制御装置。
【請求項2】
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記推定したユーザの就寝時刻を日付と対応付けて記憶し、
前記記憶されている就寝時刻のうち対応付けられている日付の属性が同一の就寝時刻の代表値を前記属性の日付の前記作動時刻を決めるための基準とする作動基準時刻として設定し、
現在時刻から前記作動基準時刻までの時間が就寝時間閾値以下なら前記機器に眠気通知動作を実行させる、
処理部を備える、
機器の制御装置。
【請求項3】
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの就寝時刻と起床時刻とに基づいてユーザの睡眠時間を算出し、
前記算出したユーザの睡眠時間を日付と対応付けて記憶し、
前記記憶されている睡眠時間のうち対応付けられている日付の属性が同一の睡眠時間の代表値を前記属性の日付の基準睡眠時間として設定し、
本日の睡眠時間が前記基準睡眠時間よりも睡眠時間閾値以上短いなら前記機器に眠気通知動作を実行させる、
処理部を備える、
機器の制御装置。
【請求項4】
前記処理部は、
前記ユーザの情報として、前記ユーザの睡眠に関するデータである睡眠データを推定する、
請求項1から3の何れか1項に記載の機器の制御装置。
【請求項5】
前記処理部は、
前記外部刺激データとして、前記機器の周囲の照度の情報である照度情報と、前記機器に作用する加速度の情報である加速度情報と、を取得し、
前記照度情報及び前記加速度情報が前記スリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定する、
請求項2又は3に記載の機器の制御装置。
【請求項6】
前記処理部は、
前記外部刺激データとして、前記機器の周囲の照度の情報である照度情報と、前記機器に作用する加速度の情報である加速度情報と、を取得し、
前記加速度が前記スリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定する、
請求項1又は3に記載の機器の制御装置。
【請求項7】
前記処理部は、
前記機器に前記目覚まし動作を実行させてから前記ユーザが前記目覚まし動作を停止させるまでの時間である停止時間を、前記作動時刻と対応付けて記憶し、
前記機器に前記目覚まし動作を実行させる際の前記目覚まし動作の内容を前記停止時間に基づいて変化させる、
請求項1に記載の機器の制御装置。
【請求項8】
前記処理部は、
前記機器に前記目覚まし動作を実行させてからの時間である目覚まし継続時間が時間閾値を過ぎても前記ユーザが前記目覚まし動作を停止しない場合には、前記機器に実行させている前記目覚まし動作の内容を前記目覚まし継続時間に基づいて変化させる、
請求項1又は7に記載の機器の制御装置。
【請求項9】
処理部が、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの起床時刻を日付と対応付けて記憶し、
前記記憶されている起床時刻のうち対応付けられている日付の属性が同一の前記起床時刻の代表値を前記属性の前記作動時刻として設定し、
前記属性の日付の前記作動時刻に前記機器に目覚まし動作を実行させる、
機器の制御方法。
【請求項10】
処理部が、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記推定したユーザの就寝時刻を日付と対応付けて記憶し、
前記記憶されている就寝時刻のうち対応付けられている日付の属性が同一の就寝時刻の代表値を前記属性の日付の前記作動時刻を決めるための基準とする作動基準時刻として設定し、
現在時刻から前記作動基準時刻までの時間が就寝時間閾値以下なら前記機器に眠気通知動作を実行させる、
機器の制御方法。
【請求項11】
処理部が、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの就寝時刻と起床時刻とに基づいてユーザの睡眠時間を算出し、
前記算出したユーザの睡眠時間を日付と対応付けて記憶し、
前記記憶されている睡眠時間のうち対応付けられている日付の属性が同一の睡眠時間の代表値を前記属性の日付の基準睡眠時間として設定し、
本日の睡眠時間が前記基準睡眠時間よりも睡眠時間閾値以上短いなら前記機器に眠気通知動作を実行させる、
機器の制御方法。
【請求項12】
コンピュータに、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの起床時刻を日付と対応付けて記憶し、
前記記憶されている起床時刻のうち対応付けられている日付の属性が同一の前記起床時刻の代表値を前記属性の前記作動時刻として設定し、
前記属性の日付の前記作動時刻に前記機器に目覚まし動作を実行させる、
処理を実行させるプログラム。
【請求項13】
コンピュータに、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記推定したユーザの就寝時刻を日付と対応付けて記憶し、
前記記憶されている就寝時刻のうち対応付けられている日付の属性が同一の就寝時刻の代表値を前記属性の日付の前記作動時刻を決めるための基準とする作動基準時刻として設定し、
現在時刻から前記作動基準時刻までの時間が就寝時間閾値以下なら前記機器に眠気通知動作を実行させる、
処理を実行させるプログラム。
【請求項14】
コンピュータに、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定し、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの就寝時刻と起床時刻とに基づいてユーザの睡眠時間を算出し、
前記算出したユーザの睡眠時間を日付と対応付けて記憶し、
前記記憶されている睡眠時間のうち対応付けられている日付の属性が同一の睡眠時間の代表値を前記属性の日付の基準睡眠時間として設定し、
本日の睡眠時間が前記基準睡眠時間よりも睡眠時間閾値以上短いなら前記機器に眠気通
知動作を実行させる、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器の制御装置、機器の制御方法及びプログラムに関する。
【背景技術】
【0002】
従来から、ユーザを目覚めさせるための装置として、目覚まし時計が使用されている。従来の目覚まし時計の多くは指定された時刻に大音量の音を鳴らすことでユーザを目覚めさせる。このため、ユーザはこの大音量に不快な思いをしながら目覚める場合も多い。この不快感を解消するために、例えば特許文献1には、生体信号に基づいて覚醒部を振動させることで、快適な目覚めを提供する目覚まし装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2016-7446号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されている目覚まし装置は、ユーザの生体信号により睡眠深度を検出し続け、予め設定した起床時間範囲内で睡眠深度がレム睡眠段階に到達すると、覚醒部を動作させ、ユーザに目覚めを促す。しかし、この目覚まし装置は予め起床時間範囲を設定する必要があり、また、予め設定した起床時間範囲内で睡眠深度がレム睡眠段階に到達しなかった場合には、ユーザに目覚めを促すことができない。
【0005】
そこで、本発明はこのような事情に鑑みてなされたものであって、予め作動タイミングを設定しなくても、適切なタイミングで機器を作動させることができる機器の制御装置、機器の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係る機器の制御装置の一様態は、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定し、
前記推定したユーザの起床時刻を日付と対応付けて記憶し、
前記記憶されている起床時刻のうち対応付けられている日付の属性が同一の前記起床時刻の代表値を前記属性の前記作動時刻として設定し、
前記属性の日付の前記作動時刻に前記機器に目覚まし動作を実行させる、
処理部を備える。
【発明の効果】
【0007】
本発明によれば、予め作動タイミングを設定しなくても、適切なタイミングで機器を作動させることができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係るロボットの外観を示す図である。
図2】実施形態に係るロボットの側面から見た断面図である。
図3】実施形態に係るロボットの機能構成を示すブロック図である。
図4】実施形態に係るログデータの一例を示す図である。
図5】実施形態に係る睡眠データの一例を示す図である。
図6】実施形態に係る目覚まし制御データの一例を示す図である。
図7】実施形態に係るログ記録処理のフローチャートである。
図8】実施形態に係る睡眠データ算出処理のフローチャートである。
図9】実施形態に係る目覚まし制御データ算出処理のフローチャートである。
図10】実施形態に係る目覚まし処理のフローチャートである。
図11】アラームONの際のアラーム設定画面の一例を示す図である。
図12】アラーム自動の際のアラーム設定画面の一例を示す図である。
図13】実施形態に係る通知処理のフローチャートである。
図14】変形例1に係る昼寝目覚まし制御データの一例を示す図である。
図15】変形例1に係る昼寝目覚まし処理のフローチャートである。
図16】変形例3に係る機器の制御装置及びロボットの機能構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0010】
(実施形態)
本発明における機器の制御装置を図1に示すロボット200に適用した実施形態について、図面を参照して説明する。実施形態に係るロボット200は、充電可能なバッテリーで駆動する、小型の動物を模したペットロボットである。ロボット200は、図1に示すように、目を模した装飾部品202及びふさふさの毛203を備えた外装201に覆われている。また、外装201の中には、ロボット200の筐体207が収納されている。図2に示すように、ロボット200の筐体207は、頭部204、連結部205及び胴体部206で構成され、頭部204と胴体部206とが連結部205で連結されている。
【0011】
連結部205は、連結部205を通り胴体部206の前後方向に延びる第1回転軸を中心として(ひねりモータ221により)回転自在に、胴体部206と頭部204とを連結している。また、連結部205は、連結部205を通り胴体部206の幅方向に延びる第2回転軸を中心として(上下モータ222により)回転自在に、胴体部206と頭部204とを連結する。なお、図2では、第1回転軸と第2回転軸とが互いに直交している例が示されているが、第1及び第2回転軸は互いに直交していなくてもよい。
【0012】
また、ロボット200は、図2に示すように、頭部204にタッチセンサ211を備え、ユーザが頭部204を撫でたり叩いたりしたことを検出することができる。また、胴体部206にもタッチセンサ211を備え、ユーザが胴体部206を撫でたり叩いたりしたことを検出することができる。
【0013】
また、ロボット200は、胴体部206に加速度センサ212及びジャイロセンサ215を備え、ロボット200自体の姿勢の検出や、ユーザによって持ち上げられたり、向きを変えられたり、投げられたりしたことを検出することができる。また、ロボット200は、胴体部206にマイクロフォン213を備え、外部の音を検出することができる。さらに、ロボット200は、胴体部206にスピーカ231を備え、スピーカ231を用いてロボット200の鳴き声を発したり、歌を歌ったりすることができる。
【0014】
また、ロボット200は、胴体部206に照度センサ214を備え、周囲の明るさを検出することができる。なお、外装201は光を通す素材でできているため、外装201で覆われていても、ロボット200は、照度センサ214で周囲の明るさを検出可能である。
【0015】
なお、本実施形態では加速度センサ212、マイクロフォン213、照度センサ214、ジャイロセンサ215及びスピーカ231が胴体部206に備えられているが、これらの全て又は一部が頭部204に備えられていてもよい。また、胴体部206に備えられた加速度センサ212、マイクロフォン213、照度センサ214、ジャイロセンサ215及びスピーカ231に加えて、これらの全て又は一部を頭部204にも備えるようにしてもよい。また、タッチセンサ211は、頭部204及び胴体部206にそれぞれ備えられているが、頭部204又は胴体部206のいずれか片方のみに備えられていてもよい。またこれらはいずれも複数備えられていてもよい。
【0016】
次に、ロボット200の機能構成について説明する。ロボット200は、図3に示すように、機器の制御装置100と、センサ部210と、駆動部220と、出力部230と、操作部240と、を備える。そして、機器の制御装置100は、処理部110と、記憶部120と、通信部130と、を備える。図3では、機器の制御装置100と、センサ部210、駆動部220、出力部230及び操作部240とが、バスラインBLを介して接続されているが、これは一例である。機器の制御装置100と、センサ部210、駆動部220、出力部230、及び操作部240とは、USB(Universal Serial Bus)ケーブル等の有線インタフェースや、Bluetooth(登録商標)等の無線インタフェースで接続されていてもよい。また、処理部110と記憶部120や通信部130とは、バスラインBL等を介して接続されていてもよい。
【0017】
機器の制御装置100は、処理部110及び記憶部120により、ロボット200の動作を制御する。
【0018】
処理部110は、例えば、CPU(Central Processing Unit)等で構成され、記憶部120に記憶されたプログラムにより、後述する各種処理を実行する。なお、処理部110は、複数の処理を並行して実行するマルチスレッド機能に対応しているため、後述する各種処理を並行に実行することができる。また、処理部110は、クロック機能やタイマ機能も備えており、日時等を計時することができる。
【0019】
記憶部120は、ROM(Read Only Memory)、フラッシュメモリ、RAM(Random Access Memory)等で構成される。ROMには、処理部110のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが、記憶されている。フラッシュメモリは書き込み可能な不揮発性のメモリであり、電源OFF後も保存させておきたいデータが記憶される。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【0020】
通信部130は、無線LAN(Local Area Network)、Bluetooth(登録商標)等に対応した通信モジュールを備え、スマートフォン等の外部装置とデータ通信する。
【0021】
センサ部210は、前述したタッチセンサ211、加速度センサ212、マイクロフォン213、照度センサ214、及びジャイロセンサ215を備える。処理部110は、バスラインBLを介して、センサ部210が備える各種センサが検出した検出値を、ロボット200に作用する外部刺激を表す外部刺激データとして取得する。なお、センサ部210は、タッチセンサ211、加速度センサ212、マイクロフォン213、照度センサ214、ジャイロセンサ215以外のセンサを備えてもよい。センサ部210が備えるセンサの種類を増やすことにより、処理部110が取得できる外部刺激の種類を増やすことができる。逆に、外部刺激の種類が少なくてもよい場合には、センサの種類を減らしてもよく、この場合、センサ部210は、タッチセンサ211、加速度センサ212、マイクロフォン213、照度センサ214、ジャイロセンサ215のうち、少なくとも1つのセンサを備えていればよい。
【0022】
タッチセンサ211は、何らかの物体が接触したことを検出する。タッチセンサ211は、例えば圧力センサや静電容量センサにより構成される。処理部110は、タッチセンサ211からの検出値に基づいて、接触強度や接触時間を取得し、これらの値に基づいて、ユーザによってロボット200が撫でられていることや、叩かれたりしていること等の外部刺激を検出することができる(例えば特開2019-217122号公報を参照)。なお、処理部110は、これらの外部刺激をタッチセンサ211以外のセンサで検出してもよい(例えば特許第6575637号公報を参照)。
【0023】
加速度センサ212は、ロボット200の胴体部206の前後方向、幅方向(左右方向)及び上下方向から成る3軸方向の加速度を検出する。加速度センサ212は、ロボット200が静止しているときには重力加速度を検出するので、処理部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の現在の姿勢を検出することができる。
【0024】
また、例えばユーザがロボット200を持ち上げたり投げたりした場合には、加速度センサ212は、重力加速度に加えてロボット200の移動に伴う加速度を検出する。したがって、処理部110は、加速度センサ212が検出した検出値を加速度情報として取得することができ、この検出値から重力加速度の成分を除去することにより、ロボット200の動きを検出することができる。また、処理部110は、ロボット200の移動に伴う加速度を積分することでロボット200の移動速度を算出でき、算出した速度を積分することでロボット200の移動距離を算出することもできる。
【0025】
マイクロフォン213は、ロボット200の周囲の音を検出する。処理部110は、マイクロフォン213が検出した音の成分に基づき、例えばユーザがロボット200に呼びかけていることや、手を叩いていること等を検出することができる。
【0026】
照度センサ214は、フォトダイオード等の受光素子を備え、周囲の明るさ(照度)を検出する。処理部110は、照度センサ214が検出した照度を照度情報として取得することができる。例えば、処理部110は、照度センサ214で周囲が暗いことを検出したら、ロボット200を疑似的に寝かせる(スリープ状態にする)制御を行うことができる。
【0027】
ジャイロセンサ215は、ロボット200の角速度を検出する。処理部110は、ジャイロセンサ215が検出した検出値に基づき、ユーザがロボット200の向きを変えている(例えば回転させている)ことを検出することができる。
【0028】
駆動部220は、ロボット200(自機)の動きを表現するための可動部として、ひねりモータ221及び上下モータ222を備える。駆動部220(ひねりモータ221及び上下モータ222)は、処理部110によって駆動される。ひねりモータ221及び上下モータ222は、サーボモータであり、処理部110からの指示により、指示された角度まで回転するように動作する。なお、駆動部220は可動部として他の適当なアクチェータ、例えば流体圧モータ等を備えてもよい。処理部110が駆動部220を制御することにより、ロボット200は、例えば頭部204を持ち上げたり(第2回転軸を中心として上方に回転させたり)、横にひねったり(第1回転軸を中心として右方又は左方にひねり回転させたり)するような動作を表現することができる。なお、これらの動作を行うための動作制御データは、予め記憶部120に記録されている。
【0029】
出力部230は、スピーカ231を備え、処理部110が音のデータを出力部230に入力することにより、スピーカ231から音が出力される。例えば、処理部110がロボット200の鳴き声のデータを出力部230に入力することにより、ロボット200は疑似的な鳴き声を発する。この鳴き声のデータも、記憶部120に記録されており、検出した外部刺激や後述する目覚まし動作モード等に基づいて鳴き声が選択される。なお、スピーカ231で構成される出力部230は、音出力部とも呼ばれる。
【0030】
また、出力部230として、スピーカ231に代えて、又はスピーカ231に加えて、液晶ディスプレイ等のディスプレイや、LED(Light Emitting Diode)等の発光部や、バイブレータ等の振動部を備えてもよい。そして処理部110は、目覚まし動作として、何らかの画像をディスプレイに表示させたり、LED等を発光させたり、振動部を振動させたりしてもよい。
【0031】
操作部240は、例えば、操作ボタン、ボリュームつまみ等から構成される。操作部240は、ユーザ(所有者や被貸与者)による操作、例えば、電源ON/OFF、出力音のボリューム調整等を受け付けるためのインタフェースである。なお、ロボット200は生き物感をより高めるために、操作部240として電源スイッチのみを外装201の内側に備え、それ以外の操作ボタンやボリュームつまみ等を備えなくてもよい。この場合でも、通信部130を介して接続した外部のスマートフォン等を用いてロボット200のボリューム調整等の操作を行うことができる。
【0032】
次に、記憶部120に記憶されるデータのうち、本実施形態に特徴的なデータである、ログデータ121、睡眠データ122、目覚まし制御データ123について、順に説明する。
【0033】
ログデータ121は、図4に示すように、センサ部210が検出した外部刺激に基づいて処理部110がロボット200をスリープ状態に移行させたタイミング(スリープ状態ONにした日時)と、通常状態に戻したタイミング(スリープ状態OFFにした日時)とが記録されたデータである。
【0034】
睡眠データ122は、図5に示すように、ログデータ121に基づいて処理部110が算出した、ユーザの睡眠に関するデータ(睡眠の開始時刻、睡眠の終了時刻、睡眠時間、ユーザが目覚ましを停止する操作をするまでの時間(停止時間)、昼寝か否かの情報(昼寝)等)が記録されたデータである。
【0035】
目覚まし制御データ123は、図6に示すように、睡眠データ122に基づいて処理部110が算出した、ロボット200に目覚まし動作を行わせる時刻等のデータ(ユーザの平均就寝時刻、平均起床時刻、平均睡眠時間、平均停止時間等)が日付の属性(曜日、祝日等)毎に記録されたデータである。
【0036】
次に、図7に示すフローチャートを参照しながら、機器の制御装置100の処理部110が実行するログ記録処理について説明する。ログ記録処理は、機器の制御装置100が、センサ部210からの検出値等に基づいて、ロボット200をスリープ状態に移行させたり通常状態に復帰させたりしたタイミングをログに記録する処理である。ユーザがロボット200の電源を入れると、ロボット200の他の処理(例えば、ロボット制御処理等)と並行に、このログ記録処理のスレッドの実行が開始される。
【0037】
なお、ロボット200の電源を入れると他の処理と並行して実行が開始されるロボット制御処理は、処理部110が、センサ部210からの検出値等に基づいて、駆動部220や出力部230を制御することによって、ロボット200の動きを表現したり、鳴き声等の音を出力したりする処理である。このロボット制御処理の詳細については、例えば特開2021-69767号公報等を参照してもらうこととし、ここでは割愛し、以下、ログ記録処理について説明する。
【0038】
まず、処理部110は、タイマ機能のタイマの値を0にリセットする(ステップS101)。次に、処理部110は、センサ部210で検出される値(センサ値)を取得する(ステップS102)。何らかの外部刺激があると、それがセンサ値に反映されるが、ここで取得されるセンサ値は、タッチセンサ211、加速度センサ212、照度センサ214、ジャイロセンサ215それぞれからの検出値である。
【0039】
そして、処理部110は、ステップS102で取得されたセンサ値が、スリープ解除条件を満たすか否かを判定する(ステップS103)。スリープ解除条件としては、ユーザが予め希望する条件を任意に設定可能であるが、ここでは、「頭部204を上にして持ち上げられた」又は「一定距離以上を移動させられた」という外部刺激が検出されると満たされるように設定されているものとする。したがって、加速度センサ212により、ロボット200が頭部204を上にして持ち上げられたか、一定距離以上移動したことが検出されると、スリープ解除条件が満たされることになる。
【0040】
スリープ解除条件が満たされたら(ステップS103;Yes)、処理部110は、タイマ値をリセットする(ステップS104)。そして、処理部110は、ロボット200がスリープ状態であるか否かを判定する(ステップS105)。スリープ状態でなければ(ステップS105;No)、既に通常状態になっているということなので、処理部110は、ステップS102に戻る。
【0041】
スリープ状態なら(ステップS105;Yes)、処理部110は、ロボット200を通常状態に移行させる(ステップS106)。そして、処理部110は、記憶部120にログデータ121として、日付・時刻及びスリープ状態がOFFであることを記録し(ステップS107)、ステップS102に戻る。
【0042】
一方、ステップS103で、スリープ解除条件が満たされていないなら(ステップS103;No)、処理部110は、タイマ値がスリープ閾値を超えており、かつ、スリープ条件を満たしているか否かを判定する(ステップS108)。スリープ閾値はユーザが予め任意に設定可能だが、ここでは例えば10分間とする。また、スリープ条件も、ユーザが予め希望する条件を任意に設定可能だが、ここでは、周囲が暗くなっており、かつ、ユーザによるロボット200へのタッチやロボット200の持ち上げや移動がスリープ閾値以上の時間行われていないと満たされるものとする。したがって、照度センサ214で周囲が暗い状態であることが検出され、10分以上の間、タッチセンサ211、加速度センサ212及びジャイロセンサ215で、何も検出されない(より正確には重力加速度以外は検出されない)場合に、スリープ条件が満たされることになる。
【0043】
タイマ値がスリープ閾値以下であるか、又は、スリープ条件を満たしていないなら(ステップS108;No)、処理部110は、ステップS102に戻る。
【0044】
一方、タイマ値がスリープ閾値より大きく、かつ、スリープ条件を満たしているなら(ステップS108;Yes)、処理部110は、ロボット200が通常状態であるか否かを判定する(ステップS109)。通常状態でなければ(ステップS109;No)、既にスリープ状態になっているということなので、処理部110は、ステップS102に戻る。
【0045】
ロボット200が通常状態なら(ステップS109;Yes)、処理部110は、ロボット200をスリープ状態に移行させる(ステップS110)。そして、処理部110は、記憶部120にログデータ121として、日付・時刻及びスリープ状態がONであることを記録し(ステップS111)、ステップS102に戻る。
【0046】
以上のログ記録処理により、記憶部120に、ロボット200のスリープ状態の履歴であるログデータ121が、例えば図4に示すような形で記録されていく。ロボット200は、ペットロボットとして、ユーザのそばに存在しているため、ユーザが就寝するとロボット200はスリープ状態になり、ユーザが起床するとロボット200は通常状態になることが想定される。したがって、ログデータ121に基づいて、ユーザの睡眠に関するデータ(睡眠データ122)を算出することができる。
【0047】
なお、ログ記録処理においては、必ずしもロボット200のスリープ状態のON/OFFを記録しなければならないわけではない。例えば、ユーザに生体センサ(脈拍等のユーザの生体情報を検出するセンサ)を備える生体情報検出装置(例えば生体センサ内蔵の腕時計)を装着してもらい、生体情報検出装置からの信号に基づいてユーザが睡眠中であると判定したら、「ユーザが就寝した」という意味で「スリープ状態ON」を日付・時刻とともにログデータ121に記録し、生体情報検出装置からの信号に基づいてユーザが起床したと判定したら、「ユーザが起床した」という意味で「スリープ状態OFF」を日付・時刻とともにログデータ121に記録してもよい。
【0048】
また、ユーザに生体情報検出装置を装着してもらわなくても、マイクロフォン213でユーザの寝息を検出したら、「ユーザが就寝した」という意味で「スリープ状態ON」を日付・時刻とともにログデータ121に記録し、マイクロフォン213で「おはよう」等のユーザの話す声を検出したら、「ユーザが起床した」という意味で「スリープ状態OFF」を日付・時刻とともにログデータ121に記録してもよい。
【0049】
次に、ログデータ121に基づいて、処理部110がユーザの睡眠に関するデータ(睡眠データ122)を算出する処理である睡眠データ算出処理について、図8を参照して説明する。睡眠データ算出処理は、処理部110がロボット200をスリープ状態から通常状態に移行させた際(ログデータを記録した後)に、実行が開始される。
【0050】
まず、処理部110は、算出日を取得する(ステップS201)。この算出日は通常はこの睡眠データ算出処理を実行した日である。ただし、睡眠データ算出処理が1日を超えて実行されていない場合には、睡眠データ算出処理を最後に実行した日(睡眠データ122に最後に記録した日)が算出日となり、その後、後述するステップS207からステップS201に戻ってくるたびに、処理部110は算出日を1日進める。
【0051】
そして、処理部110は、ログデータ121を参照して、算出日のスリープ開始時刻を取得する(ステップS202)。このスリープ開始時刻は、算出日のログデータ121において、スリープ状態が「ON」になっている時刻として取得される。ただし、算出日の最初のログデータ121のスリープ状態が「OFF」だった場合には、算出日の前日のログデータ121において、最後にスリープ状態が「ON」になっている時刻が算出日のスリープ開始時刻として取得される。
【0052】
次に処理部110は、ログデータ121を参照して、算出日のスリープ終了時刻を取得する(ステップS203)。このスリープ終了時刻は、算出日のログデータ121において、スリープ状態が「OFF」になっている時刻として取得される。そして、処理部110は、スリープ終了時刻とスリープ開始時刻の差を睡眠時間として算出する(ステップS204)。
【0053】
そして処理部110は、算出日の睡眠時間を全て算出したかを判定する(ステップS205)。まだ全て算出していないなら(ステップS205;No)、処理部110は、ステップS202に戻る。例えば、ユーザが昼寝をしたような場合においては、スリープ開始時刻やスリープ終了時刻がそれぞれ1日に複数回存在することになるので、睡眠時間も複数算出されることになる。ただし、処理部110は、昼寝判定閾値(例えば15分)未満の睡眠時間の睡眠については無視する(その睡眠が行われたとは判断しない)ことにしてもよい。
【0054】
算出日の睡眠時間を全て算出したら(ステップS205;Yes)、処理部110は、算出日の睡眠時間の中で最長の睡眠時間のスリープ開始時刻及びスリープ終了時刻を、算出日の就寝時刻及び起床時刻として睡眠データ122に記録し、それ以外の睡眠時間のスリープ開始時刻及びスリープ終了時刻を、算出日の昼寝の開始時刻及び終了時刻として睡眠データ122に記録する(ステップS206)。なお、昼寝は1日に2回以上行われることもあるため、処理部110は昼寝が開始された時刻の早い順に1番から番号を付けて睡眠データ122に記録し、各昼寝を区別できるようにする。
【0055】
そして、処理部110は、その日の睡眠時間として算出された時間を全て合計したものを算出日の睡眠時間として睡眠データ122に記録する(ステップS207)。例えばある日にユーザが、0時0分に就寝して6時0分に起床し、12時30分から13時0分まで昼寝した場合、その日の睡眠時間は6時間+30分として算出され、6時間30分となる。
【0056】
そして、処理部110は、算出日の次の日のログデータ121が存在するか否かを判定する(ステップS208)。次の日のログデータ121が存在するなら(ステップS208;Yes)、ステップS201に戻って、算出日を1つ進めて睡眠データ122の算出を繰り返す。
【0057】
次の日のログデータ121が存在しないなら(ステップS208;No)、睡眠データ算出処理を終了する。以上の睡眠データ算出処理により、記憶部120に睡眠データ122が記録されていく。
【0058】
例えば、10月30日18時00分にロボット200が通常状態に移行したときに睡眠データ算出処理が開始され、その時までに、図4に示すようなログデータ121(ただし、10月30日までのデータ)が記録されているものとする。この場合、10月30日の0:00開始の睡眠時間は5時間20分、12:40開始の睡眠時間は20分、17:30開始の睡眠時間は30分となる。
【0059】
この中で最長の睡眠時間(5時間20分)の開始時刻(0:00)が10月30日の就寝時刻になり、終了時刻(5:20)が10月30日の起床時刻となる。そして、10月30日の12:40に20分間の昼寝(1番目)が開始され、17:30に30分間の昼寝(2番目)が開始され、これらの昼寝の睡眠時間(20分及び30分)が最長の睡眠時間(5時間20分)に加算された「6時間10分」が、睡眠データ122に10月30日の睡眠時間として記録される。
【0060】
この結果、図5に示すように、10月30日の最長の睡眠時間(5時間20分)に対応する開始時刻には(就寝時刻として)0:00が、終了時刻には(起床時刻として)5:20が、睡眠時間には6時間10分が、それぞれ記録される。また、昼寝については何番目の昼寝かを区別できるようにするために、図5に示すように、1番目の昼寝に対応する睡眠データ122の「昼寝」の項目には「1」が、2番目の昼寝に対応する睡眠データ122の「昼寝」の項目には「2」が、それぞれ記録される。
【0061】
なお、図5では、睡眠データ122に「停止時間」も記録されているが、これは、後述する目覚まし処理で記録される。目覚まし処理が実行される前は、睡眠データ122の「停止時間」には何も記録されていない。
【0062】
次に、睡眠データ122に基づいて、目覚まし制御データ123を算出する処理である目覚まし制御データ算出処理について、図9を参照して説明する。この目覚まし制御データ算出処理は、処理部110が睡眠データ算出処理の実行を終了するたびに実行が開始される。
【0063】
まず、処理部110は、睡眠データ122のデータ量が蓄積日数閾値(例えば2週間程度から1ヶ月程度)を超えているか否かを判定する(ステップS301)。具体的には、処理部110は、睡眠データ122が予め設定された蓄積日数閾値(例えば30日)より多く蓄積されているか否かを判定する。
【0064】
睡眠データ122のデータ量が蓄積日数閾値以下なら(ステップS301;No)、処理部110は、まだ目覚まし制御データ123を算出できないと判断して、目覚まし制御データ算出処理を終了する。
【0065】
睡眠データ122のデータ量が蓄積日数閾値を超えているなら(ステップS301;Yes)、処理部110は、睡眠データ122に蓄積されているデータに基づいて、曜日祝日毎の平均就寝時刻を算出する(ステップS302)。
【0066】
具体的には、処理部110は、睡眠データ122に蓄積されているデータのうち、各祝日の最長睡眠時間のスリープ開始時刻を平均することにより、祝日の平均就寝時刻を算出する。また、睡眠データ122に蓄積されているデータのうち、祝日以外の各曜日の最長睡眠時間のスリープ開始時刻を平均することにより、その曜日の平均就寝時刻を算出する。例えば、11月3日が火曜日で祝日だった場合、処理部110は、11月3日のスリープ開始時刻を祝日の平均就寝時刻の算出に用い、火曜日の平均就寝時刻の算出には用いない。
【0067】
次に、処理部110は、睡眠データ122に蓄積されているデータに基づいて、曜日祝日毎の平均起床時刻を算出する(ステップS303)。具体的には、処理部110は、睡眠データ122に蓄積されているデータのうち、各曜日/各祝日の最長睡眠時間のスリープ終了時刻を平均することにより、その曜日/祝日の平均起床時刻を算出する。なお、平均就寝時刻の算出時と同様に、例えば、11月3日が火曜日で祝日だった場合、処理部110は、11月3日のスリープ終了時刻を祝日の平均起床時刻の算出に用い、火曜日の平均起床時刻の算出には用いない。
【0068】
そして、処理部110は、睡眠データ122に蓄積されているデータに基づいて、曜日祝日毎の平均睡眠時間を算出する(ステップS304)。具体的には、処理部110は、睡眠データ122に蓄積されているデータのうち、各曜日/各祝日の睡眠時間(その日の睡眠時間の合計)を平均することにより、その曜日/祝日の平均睡眠時間を算出する。なお、平均就寝時刻の算出時と同様に、例えば、11月3日が火曜日で祝日だった場合、処理部110は、11月3日の睡眠時間を祝日の平均睡眠時間の算出に用い、火曜日の平均睡眠時間の算出には用いない。
【0069】
次に、処理部110は、睡眠データ122に蓄積されているデータに基づいて、曜日祝日毎の平均停止時間を算出する(ステップS305)。具体的には、処理部110は、睡眠データ122に蓄積されているデータのうち、各曜日/各祝日の停止時間を平均することにより、その曜日/祝日の平均停止時間を算出する。なお、平均就寝時刻の算出時と同様に、例えば、11月3日が火曜日で祝日だった場合、処理部110は、11月3日の停止時間を祝日の平均停止時間の算出に用い、火曜日の平均停止時間の算出には用いない。また、後述する目覚まし処理が行われないと停止時間は記録されないので、処理部110は、平均停止時間を算出する際、既に記録されている停止時間のみを用いて行う。
【0070】
そして、処理部110は、算出した平均就寝時刻、平均起床時刻、平均睡眠時間及び平均停止時間を目覚まし制御データ123として、記憶部120に記憶し(ステップS306)、目覚まし制御データ算出処理を終了する。
【0071】
以上の目覚まし制御データ算出処理により、記憶部120に、例えば図6に示すように目覚まし制御データ123が記憶される。
【0072】
なお、睡眠データ122に、祝日のデータが存在していなかった場合には、処理部110は、日曜日のデータを祝日のデータとしても用いて目覚まし制御データ123として記憶する。
【0073】
また、図9に示す目覚まし制御データ算出処理及び図6に示す目覚まし制御データ123では、各時間(就寝時刻、起床時刻、睡眠時間、停止時間)の代表値として平均値を用いているが、必ずしも平均値を用いる必要はない。例えば、各時間の中央値や最頻値(1分単位での最頻値)を用いてもよい。また、最頻値を用いる場合には、まず第1期間(例えば10分)の時間幅で最頻値を求め、最頻の期間内で再度1分単位での最頻値を求め、それを代表値として用いるというように、複数の段階に分けて最頻値を求めて得られる代表値を用いてもよい。
【0074】
また、処理部110は、各時刻(開始時刻、終了時刻)の分散も求め、分散の値が一定の基準閾値を超えていたら、その時刻については規則性が見いだせないと判断して、目覚まし制御データ123のその時刻の部分に代表値(平均値)を記録しないようにしてもよい。そして、代表値が目覚まし制御データ123に記録されていない場合には、後述する目覚まし処理や通知処理において、処理部110は、その時刻に対応する目覚まし機能や通知機能を実行しない(その機能がOFFになる)ようにしてもよい。例えば、日曜日の起床時刻の分散の値が基準閾値を超えていたら、日曜日の起床時刻には自動目覚まし機能が実行されないようにしてもよい。
【0075】
次に、目覚まし制御データ123に基づいて、自動的にアラーム時刻が設定される目覚まし処理について、図10を参照して説明する。毎日、0時0分に、すなわち日が変わると、この目覚まし処理のスレッドの実行が開始される(他のスレッドと並行に実行される)。
【0076】
まず、処理部110は、目覚まし制御データ123が算出済みであるか否かを判定する(ステップS401)。目覚まし制御データ123が算出されていなければ(ステップS401;No)、目覚まし処理を終了する。
【0077】
目覚まし制御データ123が算出されているなら(ステップS401;Yes)、処理部110は、本日の曜日/祝日を取得する(ステップS402)。そして、処理部110は、アラーム時刻を設定する(ステップS403)。具体的には、処理部110は、目覚まし制御データ123を参照して、ステップS402で取得した曜日/祝日の平均起床時刻をアラーム時刻に設定する。
【0078】
次に、処理部110は、クロック機能により、現在時刻がアラーム時刻であるか否かを判定する(ステップS404)。現在時刻がアラーム時刻でないなら(ステップS404;No)、ステップS404に戻る。
【0079】
現在時刻がアラーム時刻なら(ステップS404;Yes)、処理部110は、スヌーズ回数(例えば2回)を変数Sに設定するとともにスヌーズ時刻(例えばアラーム時刻の5分後)を設定する(ステップS405)。なお、スヌーズ回数やスヌーズ時刻は予めユーザが自由に設定可能である。
【0080】
次に、処理部110は、目覚まし動作モードを設定する(ステップS406)。具体的には、最初の目覚まし動作モードの設定においては、処理部110は、目覚まし制御データ123を参照して、ステップS402で取得した曜日/祝日の平均停止時間を取得し、取得した平均停止時間に応じて目覚まし動作モードを設定する。
【0081】
例えば、平均停止時間のデータが存在していない場合は、中動作モード(中位の音量で鳴き声を発声し、中位の速度での目覚まし動作)に設定する。また、平均停止時間が第1時間閾値(例えば1分)未満なら、小動作モード(鳴き声無しで、小さくゆっくりとした目覚まし動作)に設定する。また、平均停止時間が第1時間閾値以上かつ第2時間閾値(例えば3分)未満なら平均動作モードに設定する。また、平均停止時間が第2時間閾値以上なら、大動作モード(大きな鳴き声を発声し、大きく速い目覚まし動作)に設定する。
【0082】
後述するステップS413からステップS406に戻ってきて目覚まし動作モードを設定する際には、処理部110は、アラーム継続時間(最初にアラーム動作を開始してからの時間)に応じて、動作モードを大きくしていく。具体的には、最初に小動作モードでアラーム動作を開始していたなら、アラーム継続時間が第1時間閾値以上になったら動作モードを中動作モードに変更し、アラーム継続時間が第2時間閾値以上になったら動作モードを大動作モードに変更する。最初に中動作モードでアラーム動作を開始していたなら、アラーム継続時間が第2時間閾値以上になったら動作モードを大動作モードに変更する。
【0083】
そして、処理部110はステップS406で設定した目覚まし動作モードで駆動部220及びスピーカ231を制御することにより、アラーム動作を実行する(ステップS407)。アラーム動作とは、アラーム時刻になると、ロボット200が駆動部220によってもぞもぞと動いたり、スピーカ231で鳴き声を発したりする動作のことである。このアラーム動作により、ユーザは不快を感じることなく、自然に目覚めることができる。
【0084】
そして、処理部110は、アラーム停止操作が行われたか否かを判定する(ステップS408)。アラーム停止操作としては任意の操作を規定可能であるが、本実施形態では、ユーザがロボット200の頭を持ち上げるか、ロボット200を一定の距離以上移動させると、アラーム停止操作が行われたと判定することとする。
【0085】
ユーザによるアラーム停止操作が行われたら(ステップS408;Yes)、処理部110は、このアラーム停止操作に応じてアラーム動作を停止する(ステップS409)。そして処理部110は、アラーム動作の開始からユーザによるアラーム停止操作が行われるまでの時間を停止時間として、目覚まし制御データ123に記録し(ステップS410)、目覚まし処理を終了する。
【0086】
ユーザによるアラーム停止操作が行われなければ(ステップS408;No)、処理部110は、残りのスヌーズ回数が設定されている変数Sの値が1以上であるか否かを判定する(ステップS411)。変数Sの値が0なら(ステップS411;No)、処理部110はステップS410に進む。ただし、この場合、アラーム停止操作がまだ行われていないため、ステップS410で停止時間としては、「10時間」等、十分に大きな値を目覚まし制御データ123に記録する。
【0087】
変数Sの値が1以上なら(ステップS411;Yes)、処理部110は、現在時刻がスヌーズ時刻であるか否かを判定する(ステップS412)。スヌーズ時刻でなければ(ステップS412;No)、ステップS408に戻る。
【0088】
スヌーズ時刻なら(ステップS412;Yes)、処理部110は、変数Sの値を1減らし、スヌーズ時刻を更新(例えば5分後に設定)し(ステップS413)、ステップS406に戻る。
【0089】
以上の目覚まし処理により、機器の制御装置100は、ユーザがアラーム時刻を設定しなくても、適切な時刻に適切な動作によってユーザを目覚めさせることができる。
【0090】
なお、上述の目覚まし処理では、各曜日/祝日を全て区別し、その曜日/祝日の平均起床時刻をアラーム時刻に設定している。しかし、いくつかの曜日をまとめて区別せずに扱うようにしてもよい。例えば、月~金を区別せずに平日として扱い、土日及び祝日を区別せずに休日として扱うようにしてもよい。この場合は、平日は、月~金の起床時刻を全て平均した時刻をアラーム時刻に設定し、休日は、土日及び祝日の起床時刻を全て平均した時刻をアラーム時刻に設定する。
【0091】
また、機器の制御装置100は、従来からある、ユーザが予めアラーム時刻を設定しておく通常のアラーム機能を備えていてもよい。ただし、機器の制御装置100は、表示画面を備えていないため、アラーム機能の設定は、通信部130を介して接続したスマートフォンのアプリケーションプログラムを用いて行われる。このスマートフォンのアプリケーションプログラムにおけるアラーム機能の設定画面301の一例を図11に示す。ユーザが自分でアラーム時刻を設定したい場合には、図11に示すように、アラームのトグルスイッチ311をONにし、アラーム時刻313を設定することになる。
【0092】
図11に示す例では、ユーザは、スマートフォンに表示された設定画面301から、アラームのON/自動/OFFのトグルスイッチ311、スヌーズの回数312(0回ならスヌーズOFF)、アラーム時刻313、曜日毎のアラームのON/OFF、目覚ましモード(アラーム時のロボット200の動きの強弱等)、アラーム時のロボット200の鳴き声のON/OFF等を設定し、これらを機器の制御装置100に送信することによって、機器の制御装置100にアラーム機能の各種設定値を入力することができる。
【0093】
なお、図11は、アラームのトグルスイッチ311を「ON」に設定したときの設定画面301を示しているが、トグルスイッチ311を「自動」に設定すると、図12に示すような設定画面302が表示される。この画面では、アラーム時刻の設定等はなく、データ蓄積日数321(睡眠データ122の蓄積日数)、アラーム自動322(自動設定される目覚まし機能がONになったか否かを示し、データ蓄積日数321が蓄積日数閾値(例えば30日)以下ならOFFで、蓄積日数閾値を超えるとONになる)、各曜日/祝日のアラーム自動設定時刻323(目覚まし制御データ123の平均起床時刻)等が表示されている。
【0094】
また、アラーム自動設定時刻323に「平日 5:46」とあるが、これは、その上に表示されている平日設定324で設定されている曜日(図12の例では「月火水木金」)の全ての起床時刻の平均の時刻であり、これらを「平日」としてまとめて扱うことを表している。平日設定324で何も設定されなければ、各曜日はすべて区別されて扱われるが、平日設定324で設定された日は平均起床時刻等が平均されて、まとめて扱われる。このようにすることにより、平日設定324でまとめた日のアラーム時刻をできるだけ一定にすることができる。
【0095】
図12には示されていないが、平日設定324と同様に、休日設定として「休日」としてまとめて扱う曜日/祝日を複数(例えば「土日」及び祝日)設定できるようにしてもよい。
【0096】
次に、目覚まし制御データ123に基づいて、ユーザに自然な形で就寝時刻が近づいていること等を通知する通知処理について、図13を参照して説明する。毎日、ロボット200が最初に通常状態に移行したとき(すなわちユーザが起床したと考えられるタイミング)に、この通知処理のスレッドの実行が開始される(他のスレッドと並行に実行される)。
【0097】
まず、処理部110は、目覚まし制御データ123が算出済みであるか否かを判定する(ステップS501)。目覚まし制御データ123が算出されていなければ(ステップS501;No)、通知処理を終了する。
【0098】
目覚まし制御データ123が算出されているなら(ステップS501;Yes)、処理部110は、本日の曜日/祝日を取得する(ステップS502)。そして、処理部110は、目覚まし制御データ123を参照して、ステップS402で取得した曜日/祝日の平均就寝時刻及び平均睡眠時間を取得する(ステップS503)。取得した平均就寝時刻は、後述する眠気通知動作を作動させる時刻を決定するための基準になる時刻であるため、作動基準時間とも呼ばれる。また、取得した平均睡眠時間は眠気通知動作を作動させるか否かを決定するための基準になる時間であるため、基準睡眠時間とも呼ばれる。
【0099】
次に、処理部110は、睡眠データ122を参照して、本日の睡眠時間を取得し(ステップS504)、本日の睡眠時間が平均睡眠時間よりも睡眠時間閾値(例えば1時間)以上短いか否かを判定する(ステップS505)。睡眠時間閾値以上短いわけではないなら(ステップS505;No)、ステップS507に進む。
【0100】
睡眠時間閾値以上短いなら(ステップS505;Yes)、睡眠不足と考えられるので、処理部110は、眠気通知動作をロボット200に実行させる(ステップS506)。眠気通知動作とは、睡眠不足であることや就寝時刻が近いことによって、眠気が生じていることをユーザに対して通知する動作であり、あくびやウトウトした様子等を模した動作である。例えば、処理部110が駆動部220であくびをしているかのような動作(頭部204を上に上げたり、(ロボット200が口を開けることができる場合には)口を大きく開けたりする動作)をさせたり、あくびをしている時の声をスピーカ231から出力させたり、ウトウトしているかのような動作(頭部204をゆっくり上下させたりする動作)をさせたりする。
【0101】
そして、処理部110は、就寝時刻が近いか否かを判定する(ステップS507)。具体的には、現在時刻から平均就寝時刻までの時間が就寝時間閾値(例えば1時間)以下であるなら、処理部110は、就寝時刻が近いと判定する。就寝時刻が近くないなら(ステップS507;No)、処理部110は所定時間(例えば30分)待機し(ステップS508)、ステップS505に戻る。
【0102】
就寝時刻が近いなら(ステップS507;Yes)、そろそろ眠くなってくる頃なので、処理部110は、眠気通知動作をロボット200に実行させる(ステップS509)。そして、処理部110は、ロボット200がスリープ状態であるか否かを判定する(ステップS510)。スリープ状態なら(ステップS510;Yes)、処理部110は、ユーザが就寝したことによりロボット200もスリープ状態に移行したと判断し、通知処理を終了する。
【0103】
スリープ状態でないなら(ステップS510;No)、処理部110は、ステップS508に進み、所定時間待機後にステップS505からの処理を繰り返す。なお、ステップS507での判定がNoの場合のステップS508での待機時間(睡眠不足の場合に眠気通知動作を行う時間間隔)と、ステップS510での判定がNoの場合のステップS508での待機時間(就寝時刻が近づいた場合に眠気通知動作を行う時間間隔)とは、異なる設定値になっていてもよい。
【0104】
以上の通知処理により、機器の制御装置100は、ユーザが睡眠不足であることや、就寝時刻が近づいていることを、ペットロボットらしい自然な動作で通知することができる。
【0105】
(変形例1)
上述の実施形態では、アラーム時刻が自動的に設定されるのは、最も長い睡眠時間に対応する起床時刻であったが、短い睡眠時間(昼寝)の終了時刻にもアラーム時刻が自動的に設定されるようにしてもよい。このような昼寝用自動目覚まし機能を備える変形例1について説明する。
【0106】
変形例1に係る機器の制御装置100は、後述する昼寝目覚まし制御データ算出処理により算出した昼寝目覚まし制御データ124(例えば図14に示すようなデータ)を記憶部120に記憶する。
【0107】
昼寝目覚まし制御データ算出処理は、上述の図9に示す目覚まし制御データ算出処理と同様に、処理部110が睡眠データ算出処理の実行を終了するたびに実行が開始される。また、昼寝目覚まし制御データ算出処理の流れも、目覚まし制御データ算出処理と同様である。
【0108】
ただし、目覚まし制御データ算出処理(図9)のステップS302~S305では、処理部110は「曜日祝日毎」の平均を算出しているが、昼寝目覚まし制御データ算出処理では、「曜日祝日毎」の代わりに「昼寝グループ毎」の平均を算出する。昼寝グループとは、同じ曜日かつその曜日で何番目の昼寝かが一致しているものを同一のグループにまとめたものである。例えば昼寝目覚まし制御データ124の昼寝グループが「火1」のデータは、火曜日の1番目の昼寝の開始時刻、終了時刻、睡眠時間をそれぞれ平均したものとなる。
【0109】
そして、目覚まし制御データ算出処理(図9)のステップS306では、処理部110は算出した平均値を目覚まし制御データ123として、記憶部120に記憶しているが、昼寝目覚まし制御データ算出処理では、処理部110は、算出した平均値を昼寝目覚まし制御データ124として、記憶部120に記憶する。
【0110】
この昼寝目覚まし制御データ算出処理により、記憶部120に、例えば図14に示すように昼寝目覚まし制御データ124が記憶される。
【0111】
昼寝目覚まし制御データ124に基づいて、自動的に昼寝用のアラーム時刻が設定される昼寝目覚まし処理について、図15を参照して説明する。上述した目覚まし処理と同様に、毎日、0時0分に、すなわち日が変わると、この目覚まし処理のスレッドの実行が開始される(他のスレッドと並行に実行される)。
【0112】
まず、処理部110は、昼寝目覚まし制御データ124が算出済みであるか否かを判定する(ステップS451)。昼寝目覚まし制御データ124が算出されていなければ(ステップS451;No)、昼寝目覚まし処理を終了する。
【0113】
昼寝目覚まし制御データ124が算出されているなら(ステップS451;Yes)、処理部110は、本日の曜日/祝日を取得する(ステップS452)。そして、処理部110は、アラーム時刻を設定する(ステップS453)。具体的には、処理部110は、昼寝目覚まし制御データ124を参照して、ステップS452で取得した曜日/祝日における最初の昼寝グループの平均終了時刻をアラーム時刻に設定する。
【0114】
ステップS454~S459及びステップS461~S463は目覚まし処理(図10)のステップS404~S409及びステップS411~S413と同様のため、説明を省略する。ただし、ステップS456を最初に実行する際には、処理部110は、昼寝目覚まし制御データ124を参照して、ステップS452で取得した曜日/祝日における最初の昼寝グループの平均停止時間を取得し、取得した平均停止時間に応じて目覚まし動作モードを設定する。
【0115】
ステップS464では、処理部110は、アラーム動作の開始からユーザによるアラーム停止操作が行われるまでの時間を停止時間として、昼寝目覚まし制御データ124に記録する。そして、処理部110は、昼寝目覚まし制御データ124に、その日の次の昼寝グループが存在するか否かを判定する(ステップS465)。
【0116】
次の昼寝グループが存在するなら(ステップS465;Yes)、処理部110はステップS453に戻り、次の昼寝グループの平均終了時刻をアラーム時刻に設定する。
【0117】
次の昼寝グループが存在しないなら(ステップS465;No)、処理部110は、昼寝目覚まし処理を終了する。
【0118】
以上の昼寝目覚まし処理により、変形例1に係る機器の制御装置100は、ユーザがアラーム時刻を設定しなくても、ユーザが昼寝から起きなければならない時刻に適切な動作によってユーザを目覚めさせることができる。
【0119】
なお、目覚まし制御データ123や昼寝目覚まし制御データ124の算出において用いられる、日付の属性の情報については、新たな祝日の制定、祝日の廃止や移動に対応できるよう、適宜アップデートできるようになっていてもよい。
【0120】
(変形例2)
また、例えば特開2021-69767号公報に記載されている技術を適用することにより、機器の制御装置100に疑似的な感情や性格を持たせて、アラーム動作をする際には、その時の機器の制御装置100の疑似的な感情や性格に基づいて、アラーム動作の動作内容を変化させるようにしてもよい。例えば、疑似的な感情が「イライラ」の場合には、第1時間閾値や第2時間閾値を通常(疑似的な感情が「通常」の場合)よりも短くし、中動作モードでも比較的大きめの鳴き声を発声させ、大動作モードでは非常に大きな鳴き声を発声させる等である。
【0121】
(変形例3)
また、上述の実施形態及び変形例では、ロボット200に機器の制御装置100が内蔵されている構成としたが、機器の制御装置100は、必ずしもロボット200に内蔵されている必要はない。例えば、図16に示すように、機器の制御装置101は、ロボット209に内蔵されずに別個の装置(例えばサーバ)として構成されてもよい。この変形例では、ロボット209も処理部260及び通信部270を備え、通信部130と通信部270とがお互いにデータを送受信できるように構成されている。そして、処理部110は、通信部130及び通信部270を介して、センサ部210が検出した外部刺激を取得したり、駆動部220や出力部230を制御したりする。
【0122】
なお、このように機器の制御装置101とロボット209とが別個の装置で構成されている場合、必要に応じて、ロボット209は処理部260により制御されるようになっていてもよい。例えば、単純な動作は処理部260で制御され、複雑な動作は通信部270を介して処理部110で制御される等である。
【0123】
(変形例4)
また、上述の実施形態及び変形例では、機器の制御装置100,101は、制御の対象となる機器をロボット200,209とした制御装置であるが、制御の対象となる機器は、ロボットに限られず、腕時計等も考えられる。例えば、出力部230としてブザーを備え、駆動部220としてバイブレータを備え、センサ部210として加速度センサを備えた腕時計を制御の対象となる機器とすることもできる。この場合、機器の制御装置は、外部刺激として加速度センサで検出される加速度に基づいてスリープ状態や通常状態へ移行させ、ブザーやバイブレータでユーザを目覚めさせるような制御を行うことができる。
【0124】
このように機器の制御装置100,101は、ロボットに限らず、様々な機器に適用することができる。そして様々な機器に適用することにより、当該機器で、自動的にアラーム時刻が設定された目覚まし機能を実現することができる。
【0125】
(変形例5)
また、上述の実施形態及び変形例では、処理部110は、ログデータ121に、ユーザの睡眠に関する情報を記録したが、ログデータ121に記録する情報は睡眠に関する情報に限定されない。ユーザがロボット200とともに日々生活する中で、ロボット200が定期的に外部刺激として検出する情報(例えば、カーテンを開けたときの照度や音、カーテンを閉めたときの照度や音、お湯を沸かしたときの台所での照度や音等)をログデータ121に記録してもよい。
【0126】
この場合、カーテンを開け閉めする時刻、お湯を沸かす時刻等がログデータ121に蓄積され、このログデータ121を用いることで、機器の制御装置100は、「今日はカーテンを開けないのですか?」、「そろそろカーテンを閉めませんか?」、「今日はいつもより早くお湯を沸かしましたね」等のメッセージをユーザに発することができるようになる。このため、ユーザは、習慣的に行っている行動を忘れた場合には、それをロボット200に教えてもらうことができ、物忘れやうっかりミスを防ぐことにつながる。
【0127】
(効果等)
以上、説明したように、処理部110は、ユーザの睡眠に関するデータに基づいて作動時刻を設定するので、予めユーザが作動時刻を設定する必要なく、適切な時刻に機器を作動させることができる。
【0128】
また、処理部110は、ユーザの就寝時刻や起床時刻を推定するので、予めユーザが起床時刻を設定しなくても、適切な時刻に目覚まし動作を実行させることができる。
【0129】
また、処理部110は、日付の属性が同一の起床時刻の代表値に基づいて作動時刻を設定するので、ユーザの曜日毎の起床時間の変化に対応して、適切な時刻に目覚まし動作を実行させることができる。
【0130】
また、処理部110は、ユーザの過去の目覚まし動作を停止させるまでの時間に基づいて、目覚まし動作の内容を変化させるので、ユーザがすぐに起きることが想定される場合には小さい刺激で起こすことができ、逆にユーザがなかなか起きないことが想定される場合には大きな刺激で起こすことができる。
【0131】
また、処理部110は、日付の属性が同一の就寝時刻の代表値に基づいて作動基準時刻を設定するので、ユーザの曜日毎の就寝時間の変化に対応して、適切な時刻に眠気通知動作を実行させることができる。このため、機器の制御装置100,101は、ロボット200,209にあくび等をさせることで、ユーザに、そろそろ寝る時間であることを自然に知らせることができる。
【0132】
また、処理部110は、平均睡眠時間と本日の睡眠時間とを比較して、ユーザが睡眠不足と判定される場合には、眠気通知動作を実行させることができる。このため、機器の制御装置100,101は、ロボット200,209にあくび等をさせることで、ユーザに、今日は睡眠不足だから昼寝をした方がいいかもしれないということを自然に知らせることができる。
【0133】
上述の実施形態において、処理部110のCPUが実行する動作プログラムは、あらかじめ記憶部120のROM等に記憶されていた。しかしながら、本発明は、これに限定されず、上述の各種処理を実行させるための動作プログラムを、既存の汎用コンピュータ等に実装することにより、上述の実施形態に係る機器の制御装置100,101に相当する装置として機能させてもよい。
【0134】
このようなプログラムの提供方法は任意であり、例えば、コンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、MO(Magneto-Optical Disc)、メモリカード、USBメモリ等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0135】
また、上述の処理をOS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(Bulletin Board System:BBS)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0136】
また、処理部110,260は、シングルプロセッサ、マルチプロセッサ、マルチコアプロセッサ等の任意のプロセッサ単体で構成されるものの他、これら任意のプロセッサと、ASIC(Application Specific Integrated Circuit)やFPGA(Field‐Programmable Gate Array)等の処理回路とが組み合わせられて構成されてもよい。
【0137】
本発明は、本発明の広義の精神と範囲とを逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、前述した実施形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0138】
(付記1)
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定する、
処理部を備える、
機器の制御装置。
【0139】
(付記2)
前記処理部は、
前記ユーザの情報として、前記ユーザの睡眠に関するデータである睡眠データを推定する、
付記1に記載の機器の制御装置。
【0140】
(付記3)
前記処理部は、
前記外部刺激データがスリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記外部刺激データがスリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定する、
付記2に記載の機器の制御装置。
【0141】
(付記4)
前記処理部は、
前記外部刺激データとして、前記機器の周囲の照度の情報である照度情報と、前記機器に作用する加速度の情報である加速度情報と、を取得し、
前記照度情報及び前記加速度情報が前記スリープ条件を満たした時刻を、前記ユーザの就寝時刻と推定し、
前記加速度が前記スリープ解除条件を満たした時刻を、前記ユーザの起床時刻と推定する、
付記3に記載の機器の制御装置。
【0142】
(付記5)
前記処理部は、
前記推定したユーザの起床時刻を日付と対応付けて記憶し、
前記記憶されている起床時刻のうち対応付けられている日付の属性が同一の前記起床時刻の代表値を前記属性の前記作動時刻として設定し、
前記属性の日付の前記作動時刻に前記機器に目覚まし動作を実行させる、
付記3又は4に記載の機器の制御装置。
【0143】
(付記6)
前記処理部は、
前記機器に前記目覚まし動作を実行させてから前記ユーザが前記目覚まし動作を停止させるまでの時間である停止時間を、前記作動時刻と対応付けて記憶し、
前記機器に前記目覚まし動作を実行させる際の前記目覚まし動作の内容を前記停止時間に基づいて変化させる、
付記5に記載の機器の制御装置。
【0144】
(付記7)
前記処理部は、
前記機器に前記目覚まし動作を実行させてからの時間である目覚まし継続時間が時間閾値を過ぎても前記ユーザが前記目覚まし動作を停止しない場合には、前記機器に実行させている前記目覚まし動作の内容を前記目覚まし継続時間に基づいて変化させる、
付記5又は6に記載の機器の制御装置。
【0145】
(付記8)
前記処理部は、
前記推定したユーザの就寝時刻を日付と対応付けて記憶し、
前記記憶されている就寝時刻のうち対応付けられている日付の属性が同一の就寝時刻の代表値を前記属性の日付の前記作動時刻を決めるための基準とする作動基準時刻として設定し、
現在時刻から前記作動基準時刻までの時間が就寝時間閾値以下なら前記機器に眠気通知動作を実行させる、
付記3から7のいずれか1つに記載の機器の制御装置。
【0146】
(付記9)
前記処理部は、
前記推定したユーザの就寝時刻と起床時刻とに基づいてユーザの睡眠時間を算出し、
前記算出したユーザの睡眠時間を日付と対応付けて記憶し、
前記記憶されている睡眠時間のうち対応付けられている日付の属性が同一の睡眠時間の代表値を前記属性の日付の基準睡眠時間として設定し、
本日の睡眠時間が前記基準睡眠時間よりも睡眠時間閾値以上短いなら前記機器に眠気通知動作を実行させる、
付記3から8のいずれか1つに記載の機器の制御装置。
【0147】
(付記10)
処理部が、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定する、
機器の制御方法。
【0148】
(付記11)
コンピュータに、
機器に作用する外部刺激を表す外部刺激データを取得し、
前記取得した外部刺激データに基づいて前記機器のユーザの情報を推定し、
前記推定したユーザの情報に基づいて前記機器の作動する時刻である作動時刻を設定する、
処理を実行させるプログラム。
【符号の説明】
【0149】
100,101…機器の制御装置、110,260…処理部、120…記憶部、121…ログデータ、122…睡眠データ、123…目覚まし制御データ、124…昼寝目覚まし制御データ、130,270…通信部、200,209…ロボット、201…外装、202…装飾部品、203…毛、204…頭部、205…連結部、206…胴体部、207…筐体、210…センサ部、211…タッチセンサ、212…加速度センサ、213…マイクロフォン、214…照度センサ、215…ジャイロセンサ、220…駆動部、221…ひねりモータ、222…上下モータ、230…出力部、231…スピーカ、240…操作部、301,302…設定画面、311…トグルスイッチ、312…回数、313…アラーム時刻、321…データ蓄積日数、322…アラーム自動、323…アラーム自動設定時刻、324…平日設定、BL…バスライン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16