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

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

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

特開2024-97123動作制御装置、動作制御方法、及び、プログラム
<>
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図1
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図2
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図3
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図4
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図5
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図6
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図7
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図8
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図9
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図10
  • 特開-動作制御装置、動作制御方法、及び、プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024097123
(43)【公開日】2024-07-18
(54)【発明の名称】動作制御装置、動作制御方法、及び、プログラム
(51)【国際特許分類】
   A63H 11/00 20060101AFI20240710BHJP
   B25J 5/00 20060101ALI20240710BHJP
【FI】
A63H11/00 Z
B25J5/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023000364
(22)【出願日】2023-01-05
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】長谷川 浩一
(72)【発明者】
【氏名】市川 英里奈
(72)【発明者】
【氏名】小野田 佳世子
(72)【発明者】
【氏名】黛 幸輝
【テーマコード(参考)】
2C150
3C707
【Fターム(参考)】
2C150CA02
2C150DA24
2C150DA26
2C150DF04
2C150DF33
2C150EB01
2C150ED42
2C150ED47
2C150ED56
2C150EF07
2C150EF16
2C150EF23
2C150EF25
2C150EF30
2C150EF33
2C150EF36
3C707AS36
3C707CS08
3C707WA02
3C707WA16
3C707WA17
3C707WL07
(57)【要約】
【課題】音声の取得処理と動作部の動作処理との競合による互いの影響を軽減させる。
【解決手段】動作制御装置100は、音声取得部と動作部220と制御部110とを備え、制御部110は、動作部220が動作中、音声取得部により取得された音声が人の声であると判定すると、動作部220を停止させ、判定後の音声を所定期間取り込み、所定期間が経過した後、動作部220の動作を再開するよう制御する、ことを特徴とする。
【選択図】図4
【特許請求の範囲】
【請求項1】
音声取得部と動作部と制御部とを備え、
前記制御部は、
前記動作部が動作中、前記音声取得部により取得された音声が人の声であると判定すると、前記動作部を停止させ、前記判定後の音声を所定期間取り込み、前記所定期間が経過した後、前記動作部の動作を再開するよう制御する、
ことを特徴とする動作制御装置。
【請求項2】
複数の記憶領域を有する記憶部を更に備え、
前記制御部は、
前記音声取得部により取得された音声に対応する音声データが前記複数の記憶領域の一部に記憶されると、前記記憶された音声データより、前記音声が人の声であるか否かを判定し、
前記音声が人の声であると判定すると、前記動作部を停止させ、継続して取得される前記所定期間の音声に対応する音声データを前記複数の記憶領域に順次記憶させるよう制御する、
ことを特徴とする請求項1に記載の動作制御装置。
【請求項3】
前記制御部は、
前記複数の記憶領域に順次記憶させた音声データを解析することにより、前記音声を発した対象を認識する、
ことを特徴とする請求項2に記載の動作制御装置。
【請求項4】
前記制御部は、
前記複数の記憶領域に順次記憶させた音声データのケプストラムを算出し、
前記算出したケプストラムの類似度に基づいて前記音声を発した対象を認識する、
ことを特徴とする請求項2に記載の動作制御装置。
【請求項5】
筐体と、前記動作部の動作により前記筐体との位置関係が変更される部材とを備え、
前記音声取得部は、前記筐体表面の外部環境音の取得に好適な位置に設けられ、
前記動作部は、前記筐体の内部に設けられている、
ことを特徴とする請求項1に記載の動作制御装置。
【請求項6】
前記音声取得部は前記動作部からの音を取得しづらくする指向性を持つマイクを備える、
ことを特徴とする請求項1に記載の動作制御装置。
【請求項7】
前記所定期間は、前記制御部が前記音声取得部から取得した音データを解析し前記取得された音声が人の声であると判定するために必要なサンプルデータのデータ量に対応する、
ことを特徴とする請求項1から5のいずれか1項に記載の動作制御装置。
【請求項8】
音声取得部と動作部と制御部とを備える動作制御装置の前記制御部が、
前記動作部が動作中、前記音声取得部により取得された音声が人の声であると判定すると、前記動作部を停止させ、前記判定後の音声を所定期間取り込み、前記所定期間が経過した後、前記動作部の動作を再開するよう制御する、
ことを特徴とする動作制御方法。
【請求項9】
音声取得部と動作部とを備える動作制御装置のコンピュータに、
前記動作部が動作中、前記音声取得部により取得された音声が人の声であると判定すると、前記動作部を停止させ、前記判定後の音声を所定期間取り込み、前記所定期間が経過した後、前記動作部の動作を再開するよう制御する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作制御装置、動作制御方法、及び、プログラムに関する。
【背景技術】
【0002】
従来から、様々なペットロボットが開発されている。ペットロボットは、ユーザが発した音声を認識するためのマイクロフォンや、頭、足等を動かすためのアクチュエータを備えるものが多い。しかし、アクチュエータ動作時に発するノイズが音声を認識する際の障害になってしまうことがある。そこで、例えば、特許文献1には、頭部にマイクロフォンを備えるとともに、アクチュエータの発するノイズが当該マイクロフォンに及ぼす影響を低減することが可能なロボットが開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-195886号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されているロボットは、アクチュエータをマイクロフォンから離隔したところに配置することにより、アクチュエータの発するノイズの影響を低減できる。しかしながらマイクロフォンとアクチュエータとを離隔しても音声の音量レベルによっては相変わらずノイズの影響を受けてしまうことは避けられない。
【0005】
本発明はこのような事情に鑑みてなされたものであって、音声の取得処理と動作部の動作処理との競合による互いの影響を軽減させることを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係る動作制御装置の一様態は、
音声取得部と動作部と制御部とを備え、
前記制御部は、
前記動作部が動作中、前記音声取得部により取得された音声が人の声であると判定すると、前記動作部を停止させ、前記判定後の音声を所定期間取り込み、前記所定期間が経過した後、前記動作部の動作を再開するよう制御する、
ことを特徴とする。
【発明の効果】
【0007】
本発明によれば、音声の取得処理と動作部の動作処理との競合による互いの影響を軽減させることができる。
【図面の簡単な説明】
【0008】
図1】実施形態1に係るロボットの外観を示す図である。
図2】実施形態1に係るロボットの側面から見た断面図である。
図3】実施形態1に係るロボットの筐体を説明するための図である。
図4】実施形態1に係るロボットの機能構成を示すブロック図である。
図5】実施形態1に係る音声バッファの一例を示す図である。
図6】実施形態1に係る感情マップの一例を説明する図である。
図7】実施形態1に係る制御内容テーブルの一例を説明する図である。
図8】実施形態1に係る動作制御処理のフローチャートである。
図9】実施形態1に係るマイク入力処理のフローチャートである。
図10】実施形態1に係る音声特徴パラメータ算出処理のフローチャートである。
図11】実施形態1に係るタッチ入力処理のフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0010】
(実施形態1)
実施形態1に係る動作制御装置を図1に示すロボット200に適用した実施形態について、図面を参照して説明する。図1に示すように、実施形態に係るロボット200は、小型の動物を模したペットロボットであり、目を模した装飾部品202及びふさふさの毛203を備えた外装201に覆われている。また、外装201の中には、ロボット200の筐体207が収納されている。図2に示すように、ロボット200の筐体207は、頭部204、連結部205及び胴体部206で構成され、頭部204と胴体部206とが連結部205で連結されている。
【0011】
胴体部206は、図2に示すように、胴体部206の前端部にひねりモータ221と呼ばれるサーボモータが備えられており、頭部204が連結部205を介して胴体部206の前端部に連結されている。そして、連結部205には、上下モータ222と呼ばれるサーボモータが備えられている。なお、図2では、ひねりモータ221は胴体部206に備えられているが、連結部205に備えられていてもよいし、頭部204に備えられていてもよい。また、図2では、上下モータ222は連結部205に備えられているが、胴体部206に備えられていてもよいし、頭部204に備えられていてもよい。いずれにしても、ひねりモータ221及び上下モータ222は、筐体207の内部に設けられている。
【0012】
ひねりモータ221は、連結部205を通り胴体部206の前後方向に延びる第1回転軸を中心として、頭部204を、胴体部206に対して、回転させることができる。また、上下モータ222は、連結部205を通り胴体部206の幅方向に延びる第2回転軸を中心として、頭部204を、胴体部206に対して、上方又は下方に回転させることができる。
【0013】
また、ロボット200は、タッチセンサ211を備え、ユーザがロボット200を撫でたり叩いたりしたことを検出することができる。より詳細には、図2に示すように、頭部204にタッチセンサ211Hを備え、ユーザが頭部204を撫でたり叩いたりしたことを検出することができる。また、図2及び図3に示すように、胴体部206の左側面の前後にそれぞれタッチセンサ211LF及びタッチセンサ211LRを、胴体部206の右側面の前後にそれぞれタッチセンサ211RF及びタッチセンサ211RRを備え、ユーザが胴体部206を撫でたり叩いたりしたことを検出することができる。
【0014】
また、ロボット200は、胴体部206に加速度センサ212を備え、ロボット200の姿勢(向き)の検出や、ユーザによって持ち上げられたり、向きを変えられたり、投げられたりしたことを検出することができる。また、ロボット200は、胴体部206にジャイロセンサ213を備え、ロボット200が振動したり転がったり回転したりしていることを検出することができる。
【0015】
また、ロボット200は、胴体部206にマイクロフォン214を備え、外部の音を検出することができる。図2に示すように、マイクロフォン214は筐体207表面の、外部環境音の取得に好適な位置に設けられている。また、マイクロフォン214は、サーボモータ(ひねりモータ221及び上下モータ222)の音を拾い難くする集音特性を有する指向性を備えていてもよい。
【0016】
さらに、ロボット200は、胴体部206にスピーカ231を備え、スピーカ231を用いて鳴き声を発したり、歌を歌ったりすることができる。
【0017】
なお、本実施形態では加速度センサ212、ジャイロセンサ213、マイクロフォン214及びスピーカ231が胴体部206に備えられているが、これらの全て又は一部が頭部204に備えられていてもよい。また、胴体部206に備えられた加速度センサ212、ジャイロセンサ213、マイクロフォン214及びスピーカ231に加えて、これらの全て又は一部を頭部204にも備えるようにしてもよい。また、タッチセンサ211は、頭部204及び胴体部206にそれぞれ備えられているが、頭部204又は胴体部206のいずれか片方のみに備えられていてもよい。またこれらはいずれも複数備えられていてもよい。
【0018】
次に、ロボット200の機能構成について説明する。ロボット200は、図4に示すように、動作制御装置100と、センサ部210と、動作部220と、音声出力部230と、操作入力部240と、を備える。そして、動作制御装置100は、制御部110と、記憶部120と、通信部130と、を備える。図4では、動作制御装置100と、センサ部210、動作部220、音声出力部230及び操作入力部240とが、バスラインBLを介して接続されているが、これは一例である。動作制御装置100と、センサ部210、動作部220、音声出力部230及び操作入力部240とは、USB(Universal Serial Bus)ケーブル等の有線インタフェースや、Bluetooth(登録商標)等の無線インタフェースで接続されていてもよい。また、制御部110と記憶部120や通信部130とは、バスラインBLを介して接続されていてもよい。
【0019】
動作制御装置100は、制御部110及び記憶部120により、ロボット200の動作を制御する。なお、ロボット200は、動作制御装置100によって制御される装置なので、被制御装置とも呼ばれる。
【0020】
制御部110は、例えば、CPU(Central Processing Unit)等のプロセッサで構成され、記憶部120に記憶されたプログラムにより、後述する各種処理を実行する。なお、制御部110は、複数の処理を並行して実行するマルチスレッド機能に対応しているため、後述する各種処理を並行に実行することができる。また、制御部110は、クロック機能やタイマー機能も備えており、日時等を計時することができる。
【0021】
記憶部120は、ROM(Read Only Memory)、フラッシュメモリ、RAM(Random Access Memory)等で構成される。ROMには、制御部110のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが、記憶されている。フラッシュメモリは書き込み可能な不揮発性のメモリであり、電源OFF後も保存させておきたいデータが記憶される。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。記憶部120は、例えば後述する感情データ121、感情変化データ122、成長日数データ123、制御内容テーブル124、音声バッファ125、音声履歴126、タッチ履歴127等を記憶する。
【0022】
通信部130は、無線LAN(Local Area Network)、Bluetooth(登録商標)等に対応した通信モジュールを備え、スマートフォン等の外部装置とデータ通信する。
【0023】
センサ部210は、前述したタッチセンサ211、加速度センサ212、ジャイロセンサ213、及びマイクロフォン214を備える。制御部110は、センサ部210が備える各種センサが検出した検出値を、ロボット200に作用する外部刺激を表す外部刺激データとして、取得する。なお、センサ部210は、タッチセンサ211、加速度センサ212、ジャイロセンサ213、マイクロフォン214以外のセンサを備えてもよい。センサ部210が備えるセンサの種類を増やすことにより、制御部110が取得できる外部刺激の種類を増やすことができる。例えば、センサ部210はCCD(Charge-Coupled Device)イメージセンサ等の画像取得部を備えてもよい。この場合、制御部110は、画像取得部が取得した画像を認識して、周囲にいる人が誰(例えば飼い主、いつもお世話してくれる人、知らない人等)なのか等を判定することができるようになる。
【0024】
タッチセンサ211は、何らかの物体が接触したことを検出する。タッチセンサ211は、例えば圧力センサや静電容量センサにより構成される。制御部110は、タッチセンサ211からの検出値に基づいて、接触強度や接触時間を取得し、これらの値に基づいて、ユーザによってロボット200が撫でられていることや、叩かれたりしていること等の外部刺激を検出することができる(例えば特開2019-217122号公報を参照)。なお、制御部110は、これらの外部刺激をタッチセンサ211以外のセンサで検出してもよい(例えば特許第6575637号公報を参照)。
【0025】
加速度センサ212は、ロボット200の胴体部206の前後方向(X軸方向)、幅(左右)方向(Y軸方向)及び上下方向(Z軸方向)から成る3軸方向の加速度を検出する。加速度センサ212は、ロボット200が静止しているときには重力加速度を検出するので、制御部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の現在の姿勢を検出することができる。また、例えばユーザがロボット200を持ち上げたり投げたりした場合には、加速度センサ212は、重力加速度に加えてロボット200の移動に伴う加速度を検出する。したがって、制御部110は、加速度センサ212が検出した検出値から重力加速度の成分を除去することにより、ロボット200の動きを検出することができる。
【0026】
ジャイロセンサ213は、ロボット200の3軸の角速度を検出する。3軸の角速度から、制御部110は、ロボット200の回転の状態を判定できる。また、3軸の角速度の最大値から、制御部110は、ロボット200の振動の状態を判定することができる。
【0027】
本実施形態では、後述するタッチ入力処理において、制御部110は、加速度センサ212が検出した重力加速度に基づいてロボット200の現在の姿勢を、水平、裏返し、上向き、下向き、横向き(左横向き又は右横向き)のいずれであるかを判定する。そして、判定結果に応じて、数値0~4のいずれかの値(水平なら0、裏返しなら1、上向きなら2、下向きなら3、横向きなら4)を変数dirの値として記憶部120に記憶する。
【0028】
また、後述するタッチ入力処理において、制御部110は、タッチセンサ211Hの検出値に基づいて頭部のタッチ強度を、タッチセンサ211LF及びタッチセンサ211LRの検出値に基づいて左側面のタッチ強度を、タッチセンサ211RF及びタッチセンサ211RRの検出値に基づいて右側面のタッチ強度を、ジャイロセンサ213の検出値に基づいて振動強度を、それぞれ取得する。そして、制御部110は、取得した強度を、それぞれ変数touch_Head(頭部のタッチ強度)、変数touch_Left(左側面のタッチ強度)、変数touch_Right(右側面のタッチ強度)、変数gyro_Level(振動強度)の値として記憶部120に記憶する。
【0029】
タッチ入力処理においては、制御部110は、上述のようにして取得した各種検出値を統合して、タッチ特徴パラメータとして扱う。すなわち、タッチ特徴パラメータは、ロボット200の姿勢(dir)、頭部のタッチ強度(touch_Head)、左側面のタッチ強度(touch_Left)、右側面のタッチ強度(touch_Right)、振動強度(gyro_Level)の5次元の情報からなる。
【0030】
そして、タッチ特徴パラメータは記憶部120に、先入れ先出し(FIFO:First In First Out)方式で履歴保存数(本実施形態では256個)記憶される。本実施形態では、タッチ特徴パラメータを記憶するFIFOをTFIFOと呼び、TFIFOに保存されているタッチ特徴パラメータの個数はTFIFO_SIZEという変数に保存されているものとする。すなわち、TFIFO_SIZEの初期値は0であり、新たなタッチ特徴パラメータが記憶されるたびに1ずつ増える。そして、履歴保存数まで増えた後はTFIFO_SIZEは履歴保存数のまま一定となり、TFIFOに新しいタッチ特徴パラメータが記憶されるたびに、最も古いタッチ特徴パラメータはTFIFOから削除されていく。TFIFOは、タッチ特徴パラメータの履歴が記憶されるので、タッチ履歴とも呼ばれる。
【0031】
図4に戻り、マイクロフォン214は、ロボット200の周囲の音を検出する音声取得部である。制御部110は、マイクロフォン214が検出した音を分析することにより、例えばユーザがロボット200に呼びかけていることや、手を叩いていること等を検出することができる。
【0032】
具体的には、制御部110は、マイクロフォン214から取得した音データを規定のサンプリング周波数(本実施形態では16,384Hz)及び量子化ビット数(本実施形態では16ビット)でサンプリングし、記憶部120の音声バッファ125に保存する。本実施形態では音声バッファ125(音データの格納領域)は、512サンプルのサンプリングデータが含まれる音声サブバッファが、マイクロフォン214から取得した音データを解析し、その音データが話し声であり、且つ、その話し声が過去に取得した音声に類似しているか否かを判定するのに必要最小なデータ量に対応する基準数個(本実施形態では16個)連続したものとして構成される。すなわち、図5に図示するように連続する16個の音声サブバッファ1250を1つの単位として音声履歴に保存された音声との類似度を判定する。
【0033】
また、本実施形態では、この連続する16個の音声サブバッファ1250を、最初(1番目)の音声サブバッファ1250ならbuf[0]、最後(16番目)の音声サブバッファ1250ならbuf[15]といった配列変数で表すこととする。この16個の音声サブバッファ1250からなる音声バッファ125により、512サンプル×16個/16384Hz=0.5秒の音データが格納される。そして、この0.5秒という期間は、制御部110がマイクロフォン214から取得した音データを解析し、マイクロフォン214から取得された音声が人の声であると判定するために必要なサンプルデータのデータ量に対応することになる。
【0034】
なお、本実施形態では、制御部110がマイクロフォン214から取得した音データを音声バッファ125に保存する処理は、音声バッファ保存スレッドとして、他の処理とは並行に実行されている(音声バッファ保存スレッドは、ユーザがロボット200の電源を入れると実行開始される)。音声バッファ保存スレッドでは、制御部110は、マイクロフォン214から取得した音データを(例えばDSP(Digital Signal Processor)による)ローパスフィルタにかけてノイズ除去を行ってから、規定のサンプリング周波数及び量子化ビット数でサンプリングして、音声バッファ125に保存していく。
【0035】
また、本実施形態では、後述する音声特徴パラメータ算出処理で、制御部110は、1つの音声サブバッファ1250中の512サンプルのサンプリングデータから、3つのケプストラム情報を算出する処理を、16個の音声サブバッファ1250のそれぞれについて行う。これによって得られる48(=3×16)個のデータを、制御部110は、48次元の音声特徴パラメータとして扱う。
【0036】
この音声特徴パラメータは記憶部120に、先入れ先出し(FIFO)方式で履歴保存数(例えば256個)記憶される。本実施形態では、音声特徴パラメータを記憶するFIFOをVFIFOと呼び、VFIFOに保存されている音声特徴パラメータの個数はVFIFO_SIZEという変数に保存されているものとする。VFIFOは、音声特徴パラメータの履歴が記憶されるので、音声履歴とも呼ばれる。
【0037】
図4に戻り、動作部220は、ひねりモータ221及び上下モータ222を備え、制御部110によって駆動される。制御部110が動作部220を制御することにより、ロボット200は、例えば頭部204を持ち上げたり(第2回転軸を中心として上方に回転させたり)、横にひねったり(第1回転軸を中心として右方又は左方にひねり回転させたり)するような動作を表現することができる。これらの動作を行うための制御データ(モーションデータ)は、記憶部120に記録されており、検出した外部刺激や、後述する感情データ121、類似度等に基づいて、ロボット200の動作が制御される。
【0038】
なお、上記は動作部220の一例である。動作部220は車輪、クローラ等の移動手段であってもよい。また、ロボット200が手足、尻尾等の部材を備え、動作部220がこれらの部材(手足や尻尾等)を動かすようになっていてもよい。動作部220の動作により、頭部204や手足等の部材は、筐体207の胴体部206との位置関係が変更されることになる。
【0039】
音声出力部230は、スピーカ231を備え、制御部110が音のデータを音声出力部230に入力することにより、スピーカ231から音が出力される。例えば、制御部110がロボット200の鳴き声のデータを音声出力部230に入力することにより、ロボット200は疑似的な鳴き声を発する。この鳴き声のデータも、記憶部120に制御データ(効果音データ)として記録されており、検出した外部刺激や、後述する感情データ121、類似度等に基づいて鳴き声が選択される。
【0040】
操作入力部240は、例えば、操作ボタン、ボリュームつまみ等から構成される。操作入力部240は、ユーザ(所有者や被貸与者)による操作、例えば、電源ON/OFF、出力音のボリューム調整等を受け付けるためのインタフェースである。なお、ロボット200は生き物感をより高めるために、操作入力部240として電源スイッチのみを外装201の内側に備え、それ以外の操作ボタンやボリュームつまみ等を備えなくてもよい。この場合でも、通信部130を介して接続した外部のスマートフォン等を用いてロボット200のボリューム調整等の操作を行うことができる。
【0041】
以上、ロボット200の機能構成について説明した。次に、記憶部120に記憶されるデータである、感情データ121、感情変化データ122、成長日数データ123、制御内容テーブル124、音声バッファ125、音声履歴126及びタッチ履歴127について、順に説明する。
【0042】
感情データ121は、ロボット200に疑似的な感情を持たせるためのデータであり、感情マップ300上の座標を示すデータ(X,Y)である。感情マップ300は図6に示すように、X軸311として安心度(不安度)の軸、Y軸312として興奮度(無気力度)の軸を持つ2次元の座標系で表される。感情マップ上の原点310(0,0)が通常時の感情を表す。そして、X座標の値(X値)が正でその絶対値が大きくなるほど安心度が高く、Y座標の値(Y値)が正でその絶対値が大きくなるほど興奮度が高い感情を表す。また、X値が負でその絶対値が大きくなるほど不安度が高く、Y値が負でその絶対値が大きくなるほど無気力度が高い感情を表す。なお、図6では感情マップ300が2次元の座標系で表されているが、感情マップ300の次元数は任意である。
【0043】
本実施形態においては、感情マップ300の初期値としてのサイズは、図6の枠301に示すように、X値もY値も最大値が100、最小値が-100となっている。そして、第1期間の間、ロボット200の疑似的な成長日数が1日増える度に、感情マップ300の最大値、最小値ともに2ずつ拡大されていく。ここで第1期間とは、ロボット200が疑似的に成長する期間であり、ロボット200の疑似的な生誕から例えば50日の期間である。なお、ロボット200の疑似的な生誕とは、ロボット200の工場出荷後のユーザによる初回の起動時である。成長日数が25日になると、図6の枠302に示すように、X値もY値も最大値が150、最小値が-150となる。そして、第1期間(この例では50日)が経過すると、それにより、ロボット200の疑似的な成長が完了したとして、図6の枠303に示すように、X値もY値も最大値が200、最小値が-200となって、感情マップ300のサイズが固定される。
【0044】
感情変化データ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とし、後述する動作制御処理の中の感情変化データ122を学習する処理により、最大20まで増加するものとしている。この学習処理により、感情変化データ122、すなわち感情の変化度合いが変化するので、ロボット200は、ユーザによるロボット200との接し方に応じて、様々な性格を持つことになる。
【0046】
成長日数データ123は、初期値が1であり、1日経過する度に1ずつ加算されていく。成長日数データ123により、ロボット200の疑似的な成長日数(疑似的な生誕からの日数)が表されることになる。
【0047】
制御内容テーブル124には、図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では、わかりやすく示すために、各効果音データを説明する文が記載されているが、実際にはこれらの文で説明されている効果音データ自身(サンプリングされた音のデータ)が、効果音データとして制御内容テーブル124に格納されている。
【0050】
なお、図7に示す制御内容テーブルでは、制御条件に感情(感情マップ300上の座標で表される)や後述する履歴(音声履歴126及びタッチ履歴127)との類似度に関する条件が含まれていないが、これらの条件を含める等して、感情や履歴との類似度に応じて制御データを変化させてもよい。
【0051】
音声バッファ125は、上述したように、マイクロフォン214から取得した音を規定のサンプリング周波数及び量子化ビット数でサンプリングしたデータが格納される領域である。図5では音声バッファ125は、基準数個(16個)の音声サブバッファ1250から構成されているが、基準数個以上の音声サブバッファ1250によるリングバッファで構成されていてもよい。
【0052】
音声履歴126は、上述したように、音声特徴パラメータの履歴が先入れ先出し方式で履歴保存数分記憶される記憶領域(VFIFO)である。音声履歴126は、履歴保存数の要素からなるリングバッファで構成されており、古いデータは自動的に新しいデータに上書きされていく。
【0053】
タッチ履歴127は、上述したように、タッチ特徴パラメータの履歴が先入れ先出し方式で履歴保存数分記憶される記憶領域(TFIFO)である。タッチ履歴127は、履歴保存数の要素からなるリングバッファで構成されており、古いデータは自動的に新しいデータに上書きされていく。なお、音声履歴126の履歴保存数とタッチ履歴127の履歴保存数とは異なっていてもよい。
【0054】
次に、図8に示すフローチャートを参照しながら、動作制御装置100の制御部110が実行する動作制御処理について説明する。動作制御処理は、制御部110が、センサ部210からの検出値等に基づいて、ロボット200の動作(動きや鳴き声等)を制御する処理である。ユーザがロボット200の電源を入れると、他の必要な処理と並行に、この動作制御処理のスレッドが実行開始される。動作制御処理により、動作部220や音声出力部230が制御され、ロボット200の動きが表現されたり、鳴き声等の効果音が出力されたりする。
【0055】
まず、制御部110は、感情データ121、感情変化データ122、成長日数データ123等の各種データを初期化処理する(ステップS101)。本実施形態で用いる各種変数(BigSound_Flag,TalkSound_Flag,Touch_Flag等)もステップS101でOFF又は0に初期化される。
【0056】
そして、制御部110は、マイクロフォン214で対象(ユーザ)からの外部刺激(音声)を取得するためにマイク入力処理を実行する(ステップS102)。マイク入力処理の詳細は後述する。
【0057】
次に、制御部110は、タッチセンサ211や加速度センサ212で対象(ユーザ)からの外部刺激(撫でられる、持ち上げられる等)を取得するためにタッチ入力処理を実行する(ステップS103)。タッチ入力処理の詳細は後述する。
【0058】
なお、本実施形態では説明を分かり易くするためにマイク入力処理とタッチ入力処理とを別々の処理として説明しているが、1つの処理(外部入力処理)として、センサ部210が備える各種センサから外部刺激を取得してもよい。
【0059】
そして、制御部110は、センサ部210で外部刺激が取得されたか否かを判定する(ステップS104)。例えば、上述のマイク入力処理により、大きな音を検出するとBigSound_FlagがONになり、人の話し声を検出するとTalkSound_FlagがONになる。また、上述のタッチ入力処理により、各種センサ(タッチセンサ211、加速度センサ212、ジャイロセンサ213)により外部刺激を検出するとTouch_FlagがONになる。したがって、これらのフラグ変数の値に基づいて、制御部110は、ステップS104における外部刺激の取得の有無の判定が可能である。
【0060】
外部刺激が取得されたと判定された場合(ステップS104;Yes)、制御部110は、マイク入力処理及びタッチ入力処理で取得された外部刺激に応じて、感情データ121に加算又は減算する感情変化データ122を取得する(ステップS105)。例えば、外部刺激として頭部204が撫でられたことを検出すると、ロボット200は疑似的な安心感を得るので、制御部110は、感情データ121のX値に加算する感情変化データ122としてDXPを取得する。
【0061】
そして、制御部110は、ステップS105で取得された感情変化データ122に応じて感情データ121を設定する(ステップS106)。例えば、ステップS105で感情変化データ122としてDXPが取得されていたなら、制御部110は、感情データ121のX値に感情変化データ122のDXPを加算する。ただし、感情変化データ122を加算すると感情データ121の値(X値、Y値)が感情マップ300の最大値を超える場合には、感情データ121の値は感情マップ300の最大値に設定される。また、感情変化データ122を減算すると感情データ121の値が感情マップ300の最小値未満になる場合には、感情データ121の値は感情マップ300の最小値に設定される。
【0062】
ステップS105及びステップS106において、外部刺激の各々に対して、どのような感情変化データ122が取得されて、感情データ121が設定されるかは任意に設定可能であるが、ここでは、以下に一例を示す。
【0063】
頭部204を撫でられる(安心する):X=X+DXP
頭部204を叩かれる(不安になる):X=X-DXM
(これらの外部刺激は頭部204のタッチセンサ211Hで検出可能)
胴体部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
(これらの外部刺激はマイクロフォン214で検出可能)
【0064】
そして、制御部110は、制御内容テーブル124を参照して、ステップS102及びステップS103で取得された外部刺激により満たされる制御条件に対応した制御データを取得する(ステップS107)。
【0065】
そして、制御部110は、制御データ再生スレッドを起動して、ステップS107で取得した制御データを再生する(ステップS108)。制御データ再生スレッドは、制御データを再生する(モーションデータに基づいて動作部220を制御し、効果音データに基づいて音声出力部230から音を出力する)だけのスレッドであるが、動作制御処理とは別のスレッドで実行させることにより、ロボット200が制御データに基づいて動作している際にも並行して動作制御処理を進められるようにしている。
【0066】
そして、制御部110は、フラグ変数(BigSound_Flag、TalkSound_Flag、Touch_Flag)をOFFに設定し(ステップS109)、ステップS112に進む。
【0067】
一方、外部刺激が取得されなかったと判定した場合(ステップS104;No)、制御部110は、動作部220をある一定のリズムで周期的に駆動することでロボット200が呼吸をしているように見せる呼吸動作等の自発的な動作を行うか否かを判定する(ステップS110)。自発的な動作を行うか否かの判定方法は任意だが、本実施形態では、呼吸周期(例えば2秒)毎にステップS110での判定がYesになり、呼吸動作が行われるものとする。
【0068】
自発的な動作を行うと判定した場合(ステップS110;Yes)、制御部110は、自発的な動作(例えば呼吸動作)を実行し(ステップS111)、ステップS112に進む。
【0069】
自発的な動作を行わないと判定した場合(ステップS110;No)、制御部110は、内蔵するクロック機能により、日付が変わったか否かを判定する(ステップS112)。日付が変わっていないと判定した場合(ステップS112;No)、制御部110はステップS102に戻る。
【0070】
一方、日付が変わったと判定した場合(ステップS112;Yes)、制御部110は、第1期間中であるか否かを判定する(ステップS113)。第1期間を、ロボット200の疑似的な生誕(例えば購入後のユーザによる初回の起動時)から例えば50日の期間とすると、制御部110は、成長日数データ123が50以下なら第1期間中であると判定する。第1期間中でないと判定した場合(ステップS113;No)、制御部110は、ステップS116に進む。
【0071】
第1期間中であると判定した場合(ステップS113;Yes)、制御部110は、感情変化データ122の学習処理を実行する(ステップS114)。感情変化データ122の学習処理とは、具体的には、その日のステップS106において、感情データ121の値が1度でも感情マップ300の最大値又は最小値に達したら対応する感情変化データ122を増加させる処理である。例えば、感情データ121のX値が1度でも感情マップ300の最大値に設定されたなら感情変化データ122のDXPに1を加算し、Y値が1度でも感情マップ300の最大値に設定されたならDYPに1を加算し、X値が1度でも感情マップ300の最小値に設定されたならDXMに1を加算し、Y値が1度でも感情マップ300の最小値に設定されたならDYMに1を加算する。ただし、感情変化データ122の各値が大きくなりすぎると、感情データ121の1回の変化量が大きくなりすぎるので、感情変化データ122の各値は例えば20を最大値とし、それを超えて増加しないようにする。
【0072】
そして、制御部110は、感情マップを拡大する(ステップS115)。感情マップの拡大とは、具体的には、制御部110が、感情マップ300を最大値、最小値ともに、2だけ拡大する処理である。ただし、この拡大する数値「2」はあくまでも一例であり、3以上拡大してもよいし、1だけ拡大してもよい。また感情マップ300の軸毎、また最大値と最小値とで、拡大する数値が同じでなくてもよい。
【0073】
そして、制御部110は、成長日数データ123に1を加算し(ステップS116)、感情データ121をX値、Y値ともに0に初期化して(ステップS117)、ステップS102に戻る。
【0074】
次に、動作制御処理(図8)のステップS102で実行されるマイク入力処理について、図9を参照して説明する。
【0075】
まず、制御部110は、音声バッファ125の最初の音声サブバッファ1250、すなわちbuf[0]に格納されたサンプリングデータの最大レベルを変数MLに代入する(ステップS201)。そして、制御部110は、変数MLの値がBigSoundThよりも大きいか否かを判定する(ステップS202)。なお、BigSoundThは、これよりも大きい音に対してはロボット200が驚く動作を行う値(大音閾値)である。変数MLがBigSoundThよりも大きいと判定した場合(ステップS202;Yes)、制御部110は、大きな音が入力されたことを示す変数BigSound_FlagをONにして(ステップS203)、マイク入力処理を終了し、動作制御処理のステップS103に進む。
【0076】
一方、変数MLがBigSoundThより大きくないと判定した場合(ステップS202;No)、制御部110は、変数MLの値がTalkSoundThよりも大きいか否かを判定する。なお、TalkSoundThは、これ以下の音ならロボット200は話し声として聞き取ることができない値(話声閾値)である。変数MLがTalkSoundThより大きくないと判定した場合(ステップS204;No)、制御部110は、マイク入力処理を終了し、動作制御処理のステップS103に進む。
【0077】
一方、変数MLがTalkSoundThより大きいと判定した場合(ステップS204;Yes)、制御部110は、動作部220のひねりモータ221及び上下モータ222を一時停止させる(ステップS205)。これにより、制御データ再生スレッドで制御されている動作部220の動作が一時停止するため、動作部220の動作によって生じるノイズは発生しなくなる。
【0078】
そして、制御部110は、音データが保存された音声サブバッファ1250の数が基準数(ここではbuf[0]~buf[15]の16個)未満か否かを判定する(ステップS206)。音データが保存された音声サブバッファ1250の数が基準数未満と判定した場合(ステップS206;Yes)、制御部110はステップS206に戻り、基準数個に達するまで音声サブバッファ1250に音データが保存されるのを待機する。
【0079】
なお、音声バッファ保存スレッドにより、音声バッファ125には逐次音データが保存されていくため、マイク入力処理において待機することにより、いずれは(遅くとも、基準数個である16個分の音声サブバッファ1250の全サイズに対応する0.5秒後には)音データが保存された音声サブバッファ1250の数が基準数個に達する。
【0080】
一方、音データを保存した音声サブバッファ1250の数が基準数に達したと判定した場合(ステップS206;No)、制御部110は、動作部220のひねりモータ221及び上下モータ222の動作を再開させる(ステップS207)。これにより、制御データ再生スレッドで制御されている動作部220の動作が再開するので、動作部220が一時停止している時間は長くとも0.5秒以下となり、ユーザにロボット200の動きの不自然さを感じさせずにすむ。
【0081】
そして、制御部110は、音声特徴パラメータ算出処理を行う(ステップS208)。音声特徴パラメータ算出処理の詳細は後述する。
【0082】
そして、制御部110は、基準数個の音声サブバッファ1250に保存された音がノイズであるか否かを判定する(ステップS209)。ノイズであるか否かの判定方法としては任意の方法を適用可能だが、本実施形態では、以下の3つのノイズ判定方法(第1、第2及び第3のノイズ判定方法)を用いる。
【0083】
まず、第1のノイズ判定方法においては、制御部110は、まず、基準数個の音声サブバッファ1250のうち、先頭部(buf[0])からの所定数のバッファ(例えば3個の音声バッファ、すなわちbuf[0]、buf[1]及びbuf[2])について、それぞれに保存されている音データのうち、最大レベルがTalkSoundThより大きい音データが保存されている音声サブバッファ1250の数を調べる。そして、最大レベルがTalkSoundTh以下の音データが保存されている音声サブバッファ1250が1つでも存在する場合、制御部110は、基準数個保存されている音声サブバッファ1250の音データは全てノイズであると判定する。
【0084】
第2のノイズ判定方法においては、制御部110は、基準数個の音声サブバッファ1250について、音データのピーク値がTalkSoundTh以上になっている音声サブバッファ1250が基準数個中何個あるかカウントし、所定個数(例えば5個)以下なら、基準数個保存されている音声サブバッファ1250の音データは全てノイズであると判定する。
【0085】
第3のノイズ判定方法においては、制御部110は、まず、基準数個の音声サブバッファ1250の音データをまとめて所定時間(例えば0.5秒)分の音データについて周波数成分を確認する。なお、上述の音声特徴パラメータ算出処理において、この周波数成分は算出済みなので、制御部110は、算出済みの周波数成分を確認すればよい。そして、周波数成分が低域から高域まで均一な場合や、低域の方が高域よりも小さい場合は、基準数個保存されている音声サブバッファ1250の音データは全てノイズであると判定する。
【0086】
上述のノイズ判定方法のいずれかにおいて、制御部110が、基準数個の音声サブバッファ1250に保存された音データがノイズであると判定した場合(ステップS209;Yes)、制御部110は、現在の基準数個の音声サブバッファ1250に保存された音データを無視して(すなわち、音の外部刺激は存在しなかったと判断して)、マイク入力処理を終了し、動作制御処理のステップS103に進む。
【0087】
一方、上述のノイズ判定方法の全てにおいて、制御部110が、基準数個の音声サブバッファ1250に保存された音はノイズでないと判定した場合(ステップS209;No)、制御部110は、サンプリングデータが話し声であると判断し、話し声が入力されたことを示す変数TalkSound_FlagにONを代入する(ステップS210)。
【0088】
次に制御部110は、音声特徴パラメータ算出処理で算出した音声特徴パラメータと音声履歴126とを比較して過去の音声との類似度を取得する(ステップS211)。
【0089】
そして、制御部110は、ステップS208で算出された音声特徴パラメータを音声履歴126(VFIFO)に保存し(ステップS212)、マイク入力処理を終了して、動作制御処理のステップS103に進む。
【0090】
なお、図9において、音声特徴パラメータ算出処理(ステップS208)は、ノイズ判定(ステップS209)と順番を入れ替えて、ノイズではないと判定された場合(ステップS209;No)にのみ音声特徴パラメータ算出処理に進むようにしてもよい。この場合、第3のノイズ判定方法において算出された周波数成分の情報を音声特徴パラメータ算出処理でも利用することができる。
【0091】
次に、マイク入力処理(図9)のステップS208で実行される音声特徴パラメータ算出処理について、図10を参照して説明する。なお、ここでは音声サブバッファ1250の基準数を16として説明する。
【0092】
まず、制御部110は、配列変数としての音声サブバッファ1250の各要素(buf[0]~buf[15])を指定するための変数iを0に初期化する(ステップS231)。そして、制御部110は、変数iが16以上であるか否かを判定する(ステップS232)。変数iは16以上である判定した場合(ステップS232;Yes)、制御部110は音声特徴パラメータ算出処理を終了してマイク入力処理のステップS209に進む。
【0093】
一方、変数iは16未満と判定した場合(ステップS232;No)、制御部110は、buf[i]に含まれている512サンプルについて、高速フーリエ変換(FFT:Fast Fourier Transform)を行う(ステップS233)。そして、制御部110は、FFTにより得られた最初の256個の振幅成分(音声データの周波数スペクトル)を算出する(ステップS234)。ここでは、振幅成分を変数α[0]~α[255]に格納することとすると、制御部110は、
α[n]=√(n番目の実数成分の2乗+n番目の虚数成分の2乗)
(ただしnは0~255)
を計算することになる。
【0094】
次に、制御部110は、256個の振幅成分それぞれの自然対数を算出する(ステップS235)。ここでは自然対数を変数β[0]~β[255]に格納することとすると、制御部110は、
β[n]=ln(α[n])
(ただしnは0~255)
を計算することになる。
【0095】
次に、制御部110は算出した256個の自然対数に対して、再度FFTを行う(ステップS236)。そして、制御部110は、FFTにより得られた成分のうち、最初の方から直流成分(最初の1個目)を除く基準数個(本実施形態では3個)の成分の振幅成分を算出する(ステップS237)。ここではケプストラムが得られるので、これを変数Cps[0]~Cps[2]に格納することとすると、制御部110は、
Cps[n-1]=√(n番目の実数成分の2乗+n番目の虚数成分の2乗)
(ただしnは1~3)
を計算することになる。
【0096】
次に、制御部110は算出した3個のケプストラムを、音声特徴パラメータとして保存する(ステップS238)。ここでは、音声特徴パラメータを配列変数VF[i,n]に格納することとすると、制御部110は、
VF[i,n]=Cps[n]
(ただしnは0~2)
を実行することになる。そして、制御部110は、変数iに1を加算して(ステップS239)、ステップS232に戻る。
【0097】
以上の音声特徴パラメータ算出処理により、16×3=48の要素を持つ音声特徴パラメータ(VF[0,0]~VF[15,2])が得られる。この音声特徴パラメータは上述のように、低い周波数から直流成分を除く3個の成分のケプストラムで構成されるため、短時間(0.5秒)の音データから算出可能であるにも関わらず、人の違いを識別する能力が高い特徴量となる。
【0098】
次に、動作制御処理(図8)のステップS103で実行されるタッチ入力処理について、図11を参照して説明する。
【0099】
まず制御部110は、タッチセンサ211、加速度センサ212、ジャイロセンサ213から、これら各センサで検出された検出値を取得する(ステップS301)。そして、制御部110は、検出値に基づいて、タッチセンサ211でタッチを検出したか、又は、加速度センサ212で検出された加速度が変化したか、又は、ジャイロセンサで検出された角速度が変化したかを判定する(ステップS302)。
【0100】
タッチ又は加速度変化又は角速度変化があったなら(ステップS302;Yes)、制御部110は変数Touch_FlagをONにし(ステップS303)、タッチ特徴パラメータを算出する(ステップS304)。タッチ特徴パラメータは、上述したように、ロボット200の姿勢(dir)、頭部のタッチ強度(touch_Head)、左側面のタッチ強度(touch_Left)、右側面のタッチ強度(touch_Right)、振動強度(gyro_Level)の5次元の情報からなる。
【0101】
そして、制御部110は、ステップS304で算出したタッチ特徴パラメータとタッチ履歴127とを比較して過去のセンサ情報との類似度を取得する(ステップS305)。
【0102】
そして、制御部110は、ステップS304で算出されたタッチ特徴パラメータをタッチ履歴127(TFIFO)に先入れ先出し方式で保存する(ステップS306)。そして制御部110は、タッチ入力処理を終了して、動作制御処理のステップS104に進む。
【0103】
以上説明した動作制御処理により、制御部110は、ロボット200(被制御装置)に作用する外部刺激を取得し、外部刺激に応じた動作を行う。そして、マイク入力処理により、制御部110は、マイクロフォン214で話し声を取得したと判定した場合、動作部220の動作を一時停止させることにより、ノイズの影響を低減する。
【0104】
ロボット200は外装201(毛皮)で覆われているので、動作部220により頭部204が動くと外装201も動く。従って、動作部220が動作している間は、マイクロフォン214は、(動作部220の動作による)モータ音だけでなく、外装201が擦れる音も拾いやすい。本実施形態では、人の話し声を取得し始めると制御部110は動作部220の動作を一時停止させるため、モータ音だけでなく外装201が擦れる音の発生も防止でき、音声を誤認識してしまう可能性をより低減することができる。
【0105】
また、本実施形態では0.5秒の長さの音データから音声特徴パラメータを算出することができるため、動作部220を一時停止する所定期間は0.5秒以下に抑えることができる。したがって、音声の取得処理と動作部の動作処理との競合による互いの影響を軽減させ、ロボット200の動きが不自然に見えてしまうことを防ぐことができる。
【0106】
(変形例)
なお、本発明は、上述の実施形態に限定されず、種々の変形及び応用が可能である。
【0107】
例えば、上述の実施形態ではマイク入力処理(図9)のステップS209でノイズではないと判定した場合にマイクロフォン214により取得された音声(音声バッファ125に格納された音データ)は人の声であると判定しているが、人の声であると判定する基準はこれに限らない。制御部110は、(マイク入力処理(図9)のステップS204で)音声サブバッファの最大レベルが話声閾値より大きければマイクロフォン214で取得された音声が人の声であると判定してもよい。また、制御部110は、(マイク入力処理(図9)のステップS208で)算出した音声特徴パラメータの値に基づいてマイクロフォン214で取得された音声が人の声か否かを判定してもよい。
【0108】
また、制御部110は、マイク入力処理で取得した音声履歴126との類似度が所定の値以上の場合には、音声を発したユーザとの親密度が高い(飼い主、いつもお世話してくれる人)と判断して、親密さを表す特別な動作をするように動作部220を制御したり、親密さを表す特別な鳴き声を音声出力部230から出力させたりしてもよい。同様に、制御部110は、タッチ入力処理で取得したタッチ履歴127との類似度が所定の値以上の場合には、撫でたり抱っこしたりしてくれたユーザとの親密度が高いと判断して、親密さを表す特別な動作をしたり鳴き声を発したりするようにしてもよい(例えば特願2021-158663号や、特願2022-187973号を参照)。
【0109】
また、制御部110は、特定のユーザの発した音声から算出される音声特徴パラメータを記憶部120に登録音声パラメータとして登録し、マイク入力処理において、音声特徴パラメータを登録音声パラメータと比較することにより、音声を発したユーザが特定のユーザか否かを認識できるようにしてもよい(例えば特願2021-158663号を参照)。
【0110】
また、上述の実施形態では、マイクロフォン214で取得した音が人の声であると判定したら、制御部110は、常に動作部220を一時停止させているが、動作部220を一時停止させるか否かは所定の条件次第にしてもよい。例えば感情データ121のY値がプラスで所定の閾値を超えている場合(ロボット200が興奮している場合)には、マイクロフォン214で取得した音が人の声であると判定しても、制御部110は、動作部220を一時停止させないようにしてもよい。このように制御することにより、ロボット200が興奮している場合には、落ち着いて人の声を聞いていられない(モータが動き続けているので、音声の誤認識が増える可能性がある)状態であることを模倣することができる。
【0111】
また、上述の実施形態では、ロボット200にロボット200を制御する動作制御装置100が内蔵されている構成としたが、ロボット200を制御する動作制御装置100は、必ずしもロボット200に内蔵されている必要はない。例えば、動作制御装置100が、ロボット200とは別個の装置として構成され、動作制御装置100の制御部110及び通信部130とは別個にロボット200も制御部250及び通信部260を備えていてもよい。この場合、通信部260と通信部130とがお互いにデータを送受信できるように構成され、制御部110は、通信部130及び通信部260を介して、センサ部210が検出した外部刺激を取得したり、動作部220や音声出力部230を制御したりする。
【0112】
上述の実施形態において、制御部110のCPUが実行する動作プログラムは、あらかじめ記憶部120のROM等に記憶されているものとして説明した。しかしながら、本発明は、これに限定されず、上述の各種処理を実行させるための動作プログラムを、既存の汎用コンピュータ等に実装することにより、上述の実施形態に係る動作制御装置100に相当する装置として機能させてもよい。
【0113】
このようなプログラムの提供方法は任意であり、例えば、コンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、MO(Magneto-Optical Disc)、メモリカード、USBメモリ等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0114】
また、上述の処理をOS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(Bulletin Board System:BBS)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0115】
また、制御部110は、シングルプロセッサ、マルチプロセッサ、マルチコアプロセッサ等の任意のプロセッサ単体で構成されるものの他、これら任意のプロセッサと、ASIC(Application Specific Integrated Circuit)やFPGA(Field‐Programmable Gate Array)等の処理回路とが組み合わせられて構成されてもよい。
【0116】
本発明は、本発明の広義の精神と範囲とを逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、前述した実施形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【符号の説明】
【0117】
100…動作制御装置、110,250…制御部、120…記憶部、121…感情データ、122…感情変化データ、123…成長日数データ、124…制御内容テーブル、125…音声バッファ、126…音声履歴、127…タッチ履歴、130,260…通信部、200…ロボット、201…外装、202…装飾部品、203…毛、204…頭部、205…連結部、206…胴体部、207…筐体、210…センサ部、211,211H,211LF,211LR,211RF,211RR…タッチセンサ、212…加速度センサ、213…ジャイロセンサ、214…マイクロフォン、220…動作部、221…ひねりモータ、222…上下モータ、230…音声出力部、231…スピーカ、240…操作入力部、300…感情マップ、301,302,303…枠、310…原点、311…X軸、312…Y軸、1250…音声サブバッファ、BL…バスライン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11