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

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

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

特開2024-104905ロボット、ロボットの制御方法及びプログラム
<>
  • 特開-ロボット、ロボットの制御方法及びプログラム 図1
  • 特開-ロボット、ロボットの制御方法及びプログラム 図2
  • 特開-ロボット、ロボットの制御方法及びプログラム 図3
  • 特開-ロボット、ロボットの制御方法及びプログラム 図4
  • 特開-ロボット、ロボットの制御方法及びプログラム 図5
  • 特開-ロボット、ロボットの制御方法及びプログラム 図6
  • 特開-ロボット、ロボットの制御方法及びプログラム 図7
  • 特開-ロボット、ロボットの制御方法及びプログラム 図8
  • 特開-ロボット、ロボットの制御方法及びプログラム 図9
  • 特開-ロボット、ロボットの制御方法及びプログラム 図10
  • 特開-ロボット、ロボットの制御方法及びプログラム 図11
  • 特開-ロボット、ロボットの制御方法及びプログラム 図12
  • 特開-ロボット、ロボットの制御方法及びプログラム 図13
  • 特開-ロボット、ロボットの制御方法及びプログラム 図14
  • 特開-ロボット、ロボットの制御方法及びプログラム 図15
  • 特開-ロボット、ロボットの制御方法及びプログラム 図16
  • 特開-ロボット、ロボットの制御方法及びプログラム 図17
  • 特開-ロボット、ロボットの制御方法及びプログラム 図18
  • 特開-ロボット、ロボットの制御方法及びプログラム 図19
  • 特開-ロボット、ロボットの制御方法及びプログラム 図20
  • 特開-ロボット、ロボットの制御方法及びプログラム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024104905
(43)【公開日】2024-08-06
(54)【発明の名称】ロボット、ロボットの制御方法及びプログラム
(51)【国際特許分類】
   A63H 11/00 20060101AFI20240730BHJP
   B25J 13/00 20060101ALI20240730BHJP
【FI】
A63H11/00 Z
B25J13/00 Z
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023009337
(22)【出願日】2023-01-25
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】長谷川 浩一
(72)【発明者】
【氏名】市川 英里奈
(72)【発明者】
【氏名】小野田 佳世子
【テーマコード(参考)】
2C150
3C707
【Fターム(参考)】
2C150AA05
2C150CA02
2C150ED42
3C707AS36
3C707HS27
3C707JS03
3C707KS10
3C707KS20
3C707KS23
3C707KS24
3C707KS31
3C707KS39
3C707KV04
3C707KV08
3C707KW01
3C707KX02
3C707MT14
3C707WA02
3C707WL02
3C707WL05
3C707WL07
3C707WL12
3C707WL13
3C707WL15
(57)【要約】
【課題】生き物の感情の自然な変化を模擬することが可能な機器のロボット、ロボットの制御方法及びプログラムを提供する。
【解決手段】ロボット200は、疑似的な感情を示す感情パラメータに応じて動作する。外部刺激取得部111は、外部刺激を取得する。パラメータ更新部113は、外部刺激に応じて感情パラメータ121を更新する。動作制御部112は、感情パラメータ121に応じてロボット200を動作させる。感情パラメータ121は、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表される。パラメータ更新部113は、感情パラメータ121を更新する場合、外部刺激に応じた評価値と、ポジショニングマップ上における感情パラメータ121の現在位置に応じた補正値と、に基づいて、ポジショニングマップ上における感情パラメータ121の位置を移動させる。
【選択図】図8
【特許請求の範囲】
【請求項1】
疑似的な感情を示す感情パラメータに応じて動作するロボットであって、
外部刺激を取得する外部刺激取得手段と、
前記外部刺激取得手段により取得された前記外部刺激に応じて前記感情パラメータを更新するパラメータ更新手段と、
前記パラメータ更新手段により更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御手段と、
を備え、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された前記外部刺激に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とするロボット。
【請求項2】
前記補正値は、前記感情パラメータの位置を、前記ポジショニングマップ上における基準位置に近付けるように補正する値である、
ことを特徴とする請求項1に記載のロボット。
【請求項3】
前記パラメータ更新手段は、前記ポジショニングマップ上における前記感情パラメータの位置を異なる複数の象限にわたって移動させる場合、前記感情パラメータの位置を、前記現在位置から前記基準位置に向けて移動させてから目標位置に移動させる、
ことを特徴とする請求項2に記載のロボット。
【請求項4】
前記パラメータ更新手段は、前記外部刺激取得手段により取得された前記外部刺激に応じて前記感情パラメータを更新した後、前記外部刺激取得手段により次に前記外部刺激が取得されるまでの間、前記ポジショニングマップ上における前記感情パラメータの位置を、時間の経過にともに前記基準位置に近付ける、
ことを特徴とする請求項2に記載のロボット。
【請求項5】
前記基準位置は、前記ポジショニングマップの原点である、
ことを特徴とする請求項2に記載のロボット。
【請求項6】
前記ポジショニングマップは、前記少なくとも2つの座標軸として、擬似的な安心度を表すための第1の座標軸と、擬似的な活性度を表すための第2の座標軸と、を有する、
ことを特徴とする請求項1から5のいずれか1項に記載のロボット。
【請求項7】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、乱数を用いたゆらぎ成分に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1から5のいずれか1項に記載のロボット。
【請求項8】
前記ゆらぎ成分は、極座標により表され、
前記ゆらぎ成分の半径成分は、乱数を用いて設定され、
前記ゆらぎ成分の角度成分は、所定の周期で一周するように設定される、
ことを特徴とする請求項7に記載のロボット。
【請求項9】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記ロボットの擬似的な性格を示す性格係数に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1から5のいずれか1項に記載のロボット。
【請求項10】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記外部刺激取得手段により取得された前記外部刺激に対する前記ロボットの擬似的な好みを示す好み係数に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1から5のいずれか1項に記載のロボット。
【請求項11】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記外部刺激取得手段により取得された前記外部刺激の過去の発生頻度に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1から5のいずれか1項に記載のロボット。
【請求項12】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記発生頻度が少ないほど、前記ポジショニングマップ上における前記感情パラメータの位置を大きく移動させる、
ことを特徴とする請求項11に記載のロボット。
【請求項13】
疑似的な感情を示す感情パラメータに応じて動作するロボットの制御方法であって、
外部刺激を取得する外部刺激取得ステップと、
前記外部刺激取得ステップで取得された前記外部刺激に応じて前記感情パラメータを更新するパラメータ更新ステップと、
前記パラメータ更新ステップで更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御ステップと、
を備え、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新ステップでは、前記感情パラメータを更新する場合、前記外部刺激取得ステップで取得された前記外部刺激に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とするロボットの制御方法。
【請求項14】
疑似的な感情を示す感情パラメータに応じて動作するロボットのコンピュータを、
外部刺激を取得する外部刺激取得手段、
前記外部刺激取得手段により取得された前記外部刺激に応じて前記感情パラメータを更新するパラメータ更新手段、
前記パラメータ更新手段により更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御手段、
として機能させるプログラムであって、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された前記外部刺激に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ように機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、ロボットの制御方法及びプログラムに関する。
【背景技術】
【0002】
ペットのような生き物を模擬するロボットが知られている。例えば、特許文献1は、過去の操作履歴、対話履歴、好感度、親密度等に基づいて内部感情を決定し、内部感情に従って動作するロボット装置を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-117866号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような生き物の疑似的な感情を表現するロボットにおいて、生き物をよりリアルに模擬するため、生き物の感情の自然な変化を模擬することが求められている。
【0005】
本発明は、以上のような課題を解決するためのものであり、生き物の感情の自然な変化を模擬することが可能な機器のロボット、ロボットの制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明に係るロボットの一態様は、
疑似的な感情を示す感情パラメータに応じて動作するロボットであって、
外部刺激を取得する外部刺激取得手段と、
前記外部刺激取得手段により取得された前記外部刺激に応じて前記感情パラメータを更新するパラメータ更新手段と、
前記パラメータ更新手段により更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御手段と、
を備え、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された前記外部刺激に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする。
【発明の効果】
【0007】
本発明によれば、生き物の感情の自然な変化を模擬することが可能な機器のロボット、ロボットの制御方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係るロボットの外観を示す図である。
図2】実施形態に係るロボットを側面から見た断面図である。
図3】実施形態に係るロボットの筐体を示す図である。
図4】実施形態に係るロボットのひねりモータの動きを示す第1の図である
図5】実施形態に係るロボットのひねりモータの動きを示す第2の図である。
図6】実施形態に係るロボットの上下モータの動きを示す第1の図である。
図7】実施形態に係るロボットの上下モータの動きを示す第2の図である。
図8】実施形態に係るロボットの機能構成を示すブロック図である。
図9】実施形態に係る感情マップの例を示す図である。
図10】実施形態に係る感情マップ上において感情パラメータが移動する例を示す第1の図である。
図11】実施形態に係る感情マップ上において感情パラメータが移動する例を示す第2の図である。
図12】実施形態に係るイベント管理テーブルの例を示す図である。
図13】実施形態に係る補正値の分布の第1の例を示す図である。
図14】実施形態に係る補正値の分布の第2の例を示す図である。
図15】実施形態に係るルックアップテーブルの例を示す図である。
図16】実施形態に係る感情マップ上において感情パラメータが移動する例を示す第3の図である。
図17】実施形態に係る履歴バッファの例を示す図である。
図18】実施形態に係るゆらぎ成分の例を示す図である。
図19】実施形態に係るロボット制御処理の流れを示すフローチャートである。
図20】実施形態に係る移動ベクトル計算処理の流れを示すフローチャートである。
図21】実施形態に係る割り込み処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
【0010】
図1から図3に、本実施形態に係るロボット200の外観を示す。図1に示すように、ロボット200は、小型の動物を模したペットロボットである。ロボット200は、目を模した装飾部品202と、ふさふさの毛203と、を備えた外装201を備える。
【0011】
図2及び図3に示すように、ロボット200は、筐体207を備える。筐体207は、外装201に覆われており、外装201の内部に収納されている。筐体207は、頭部204と、連結部205と、胴体部206と、を備える。連結部205は、頭部204と胴体部206とを連結している。
【0012】
外装201は、外装部材の一例であって、前後方向に長く、内部に筐体207を収容することが可能な袋状の形状をしている。外装201は、頭部204から胴体部206にわたって寸胴形状に形成されており、胴体部206と頭部204とを一体的に覆っている。このような形状の外装201を有することにより、ロボット200は、腹ばい形状に形成されている。
【0013】
外装201の表地は、小動物の肌触りを模擬するため、小動物の毛203を模した人工のパイル織物により形成されている。外装201の裏地は、合成繊維、天然繊維、天然皮革、人工皮革、合成樹脂製のシート材、ゴム製のシート材等により形成される。このような柔軟性を有する素材により形成されているため、外装201は、筐体207の動きに追従する。具体的には、外装201は、胴体部206に対する頭部204の回転に追従する。
【0014】
外装201が筐体207の動きに追従するようにするため、外装201は、図示を省略するスナップボタンで筐体207に取り付けられている。具体的には、頭部204の前方に少なくとも1つのスナップボタンが備えられており、また、胴体部206の後方に少なくとも1つのスナップボタンが備えられている。そして、外装201の対応する位置にも頭部204と胴体部206に備えられたスナップボタンと嵌まり合うスナップボタンが備えられており、外装201はスナップボタンにより筐体207に留められて装着される。なお、スナップボタンの個数や位置は一例であり、任意に変更可能である。
【0015】
胴体部206は、前後方向に延びており、ロボット200が置かれている床やテーブル等の載置面に、外装201を介して接触する。胴体部206は、その前端部にひねりモータ221を備える。頭部204は、連結部205を介して胴体部206の前端部に連結されている。連結部205は、上下モータ222を備える。なお、図2では、ひねりモータ221は胴体部206に備えられているが、連結部205に備えられていてもよい。ひねりモータ221と上下モータ222により、頭部204は、胴体部206に対して、ロボット200の左右方向及び前後方向を軸として回転可能に連結されている。
【0016】
なお、XYZの座標軸として、水平面内にX軸とY軸とを設定し、鉛直方向にZ軸を設定する。Z軸の+方向は、鉛直上向きに相当する。そして、以下では説明を容易にするために、ロボット200の左右方向(幅方向)がX軸方向となり、ロボット200の前後方向がY軸方向となる向きにロボット200が載置面に置かれているとして説明する。
【0017】
連結部205は、連結部205を通り胴体部206の前後方向(Y方向)に延びる第1回転軸を中心として回転自在に、胴体部206と頭部204とを連結している。ひねりモータ221は、図4及び図5に示すように、頭部204を、胴体部206に対して、第1回転軸を中心として時計回り(右回り)に正転角度範囲内で回転(正転)させたり、反時計回り(左回り)に逆転角度範囲内で回転(逆転)させたりする。
【0018】
なお、この説明における時計回りは、胴体部206から頭部204の方向を見た時の時計回りである。また、時計回りの回転を「右方へのひねり回転」、反時計回りの回転を「左方へのひねり回転」とも呼ぶ。右方又は左方にひねり回転させる角度の最大値は任意である。図4及び図5では、頭部204を右方へも左方へもひねっていない状態における頭部204の角度(以下「ひねり基準角度」)を0で表している。また、最も左方へひねり回転(反時計回りに回転)させた時の角度を-100で、最も右方へひねり回転(時計回りに回転)させた時の角度を+100で、それぞれ表している。
【0019】
また、連結部205は、連結部205を通り胴体部206の左右方向(幅方向、X方向)に延びる第2回転軸を中心として回転自在に、胴体部206と頭部204とを連結している。上下モータ222は、図6及び図7に示すように、頭部204を、第2回転軸を中心として上方に正転角度範囲内で回転(正転)させたり、下方に逆転角度範囲内で回転(逆転)させたりする。
【0020】
上方又は下方に回転させる角度の最大値は任意だが、図6及び図7では、頭部204を上方にも下方にも回転させていない状態における頭部204の角度(以下「上下基準角度」)を0で、最も下方に回転させた時の角度を-100で、最も上方に回転させた時の角度を+100で、それぞれ表している。
【0021】
ロボット200は、図2及び図3に示すように、頭部204と胴体部206にタッチセンサ211を備える。ロボット200は、ユーザが頭部204又は胴体部206を撫でたり叩いたりしたことを、タッチセンサ211により検出することができる。
【0022】
ロボット200は、胴体部206に、加速度センサ212と、マイクロフォン213と、ジャイロセンサ214と、照度センサ215と、スピーカ231と、バッテリ250と、を備える。ロボット200は、加速度センサ212及びジャイロセンサ214により、ロボット200自体の姿勢の変化を検出することができ、また、ユーザによって持ち上げられたり、向きを変えられたり、投げられたりしたことを検出することができる。ロボット200は、照度センサ215により、ロボット200の周囲の照度を検出することができる。ロボット200は、マイクロフォン213により、外部の音を検出することができる。ロボット200は、スピーカ231により、鳴き声を発することができる。
【0023】
なお、加速度センサ212、マイクロフォン213、ジャイロセンサ214、照度センサ215及びスピーカ231の少なくとも一部は、胴体部206に限らず、頭部204に備えられていてもよいし、胴体部206と頭部204との両方に備えられていてもよい。
【0024】
次に、図8を参照して、ロボット200の機能的な構成について説明する。ロボット200は、図8に示すように、制御装置100と、センサ部210と、駆動部220と、出力部230と、 操作部240と、を備える。これら各部は、一例として、バスラインBLを介して接続される。なお、バスラインBLの代わりに、USB(Universal Serial Bus)ケーブル等の有線インタフェース、Bluetooth(登録商標)等の無線インタフェースを用いても良い。
【0025】
制御装置100は、制御部110と、記憶部120と、を備える。制御装置100は、制御部110及び記憶部120により、ロボット200の動作を制御する。
【0026】
制御部110は、CPU(Central Processing Unit)を備える。CPUは、例えばマイクロプロセッサ等であって、様々な処理や演算を実行する中央演算処理部である。制御部110において、CPUが、ROMに記憶されている制御プログラムを読み出して、RAMをワークメモリとして用いながら、自装置(ロボット200)全体の動作を制御する。また、図示しないが、制御部110は、クロック機能、タイマー機能等を備えており、日時等を計時することができる。制御部110は、「プロセッサ」と呼んでも良い。
【0027】
記憶部120は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等を備える。記憶部120は、OS(Operating System)及びアプリケーションプログラムを含む、制御部110が各種処理を行うために使用するプログラム及びデータを記憶する。また、記憶部120は、制御部110が各種処理を行うことにより生成又は取得するデータを記憶する。
【0028】
センサ部210は、前述したタッチセンサ211、加速度センサ212、ジャイロセンサ214、及びマイクロフォン213を備える。制御部110は、バスラインBLを介して、センサ部210が備える各種センサが検出した検出値を外部刺激として取得する。なお、センサ部210は、タッチセンサ211、加速度センサ212、ジャイロセンサ214、マイクロフォン213以外のセンサを備えてもよい。センサ部210が備えるセンサの種類を増やすことにより、制御部110が取得できる外部刺激の種類を増やすことができる。
【0029】
タッチセンサ211は、例えば圧力センサや静電容量センサを備えており、何らかの物体が接触したことを検出する。制御部110は、タッチセンサ211の検出値に基づいて、ユーザによってロボット200が撫でられていることや、叩かれたりしていること等を検出することができる。
【0030】
加速度センサ212は、ロボット200の胴体部206に加えられる加速度を検出する。加速度センサ212は、X軸方向、Y軸方向及びZ軸方向のそれぞれにおける加速度、すなわち3軸の加速度を検出する。
【0031】
例えば、加速度センサ212は、ロボット200が静止しているときには重力加速度を検出する。制御部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の現在の姿勢を検出することができる。言い換えると、制御部110は、加速度センサ212が検出した重力加速度に基づいて、ロボット200の筐体207が水平方向から傾いているか否かを検出することができる。このように、加速度センサ212は、ロボット200の傾きを検出する傾き検出手段として機能する。
【0032】
また、ユーザがロボット200を持ち上げたり投げたりした場合には、加速度センサ212は、重力加速度に加えてロボット200の移動に伴う加速度を検出する。したがって、制御部110は、加速度センサ212が検出した検出値から重力加速度の成分を除去することにより、ロボット200の動きを検出することができる。
【0033】
ジャイロセンサ214は、ロボット200の胴体部206に回転が加えられたときの角速度を検出する。具体的には、ジャイロセンサは、X軸方向を軸とした回転、Y軸方向を軸とした回転、及びZ軸方向を軸とした回転という3軸回転の角速度を検出する。加速度センサ212が検出した検出値とジャイロセンサ214が検出した検出値とを組み合わせることで、ロボット200の動きをより精度よく検出することができる。
【0034】
なお、タッチセンサ211と加速度センサ212とジャイロセンサ214とは、同期したタイミング(例えば0.25秒毎)で、接触の強さ、加速度、角速度をそれぞれ検出し、検出値を制御部110に出力している。
【0035】
マイクロフォン213は、ロボット200の周囲の音を検出する。制御部110は、マイクロフォン213が検出した音の成分に基づき、例えばユーザがロボット200に呼びかけていることや、手を叩いていること等を検出することができる。
【0036】
照度センサ215は、ロボット200の周囲の照度を検出する。制御部110は、照度センサ215が検出した照度に基づき、ロボット200の周囲が明るくなった又は暗くなったことを検出することができる。
【0037】
駆動部220は、ひねりモータ221と上下モータ222とを備えており、制御部110によって駆動される。ひねりモータ221は、頭部204を胴体部206に対して、前後方向を軸として左右方向(幅方向)に回転させるためのサーボモータである。上下モータ222は、頭部204を胴体部206に対して、左右方向を軸として上下方向(高さ方向)に回転させるためのサーボモータである。ロボット200は、ひねりモータ221により、頭部204を横にひねる動作を表現することができ、上下モータ222により頭部204を昇降させる動作を表現することができる。
【0038】
出力部230は、スピーカ231を備え、制御部110が音のデータを出力部230に入力することにより、スピーカ231から音が出力される。例えば、制御部110がロボット200の鳴き声のデータを出力部230に入力することにより、ロボット200は疑似的な鳴き声を発する。
【0039】
なお、出力部230として、スピーカ231に代えて、又はスピーカ231に加えて、液晶ディスプレイ等のディスプレイや、LED(Light Emitting Diode)等の発光部を備え、喜びや悲しみ等の感情をディスプレイに表示したり、発光する光の色や明るさで表現したりしても良い。
【0040】
操作部240は、操作ボタン、ボリュームつまみ等を備える。操作部240は、例えば、電源のオンオフ、出力音のボリューム調整等のようなユーザ操作を受け付けるためのインタフェースである。
【0041】
バッテリ250は、ロボット200において使用される電力を蓄える。バッテリ250は、ロボット200が充電ステーションに帰巣した場合に、充電ステーションによって充電される。
【0042】
次に、制御部110の機能的な構成について説明する。図8に示すように、制御部110は、機能的に、外部刺激取得手段の一例である外部刺激取得部111と、動作制御手段の一例である動作制御部112と、パラメータ更新手段の一例であるパラメータ更新部113と、を備える。制御部110において、CPUは、ROMに記憶されたプログラムをRAMに読み出して、そのプログラムを実行して制御することにより、これら各部として機能する。
【0043】
また、記憶部120は、感情パラメータ121と、感情表現テーブル122と、イベント管理テーブル123と、ルックアップテーブル124と、履歴バッファ125と、感情マップ300と、を記憶している。
【0044】
外部刺激取得部111は、外部刺激を取得する。外部刺激は、ロボット200の外部からロボット200に対して作用する刺激である。外部刺激として、例えば、「大きな音がした」、「話しかけられた」、「撫でられた」、「持ち上げられた」、「逆さにされた」、「明るくなった」、「暗くなった」等が挙げられる。外部刺激は、以下では「イベント」とも呼ぶ。
【0045】
外部刺激取得部111は、センサ部210による検出値に基づいて、外部刺激を取得する。より詳細には、外部刺激取得部111は、センサ部210に備えられた複数のセンサ(タッチセンサ211、加速度センサ212、マイクロフォン213、ジャイロセンサ214、照度センサ215)により、互いに異なる種類の複数の外部刺激を取得する。
【0046】
例えば、外部刺激取得部111は、「大きな音がした」又は「話しかけられた」ことによる外部刺激を、マイクロフォン213により取得する。外部刺激取得部111は、「撫でられた」ことによる外部刺激を、タッチセンサ211により取得する。外部刺激取得部111は、「持ち上げられた」又は「逆さにされた」ことによる外部刺激を、加速度センサ212及びジャイロセンサ214により取得する。外部刺激取得部111は、「明るくなった」又は「暗くなった」ことによる外部刺激を、照度センサ215により取得する。
【0047】
動作制御部112は、外部刺激取得部111により外部刺激が取得された場合、取得された外部刺激に対応する動作である対応動作をロボット200に実行させる。例えば、「大きな音がした」場合、動作制御部112は、驚く動作をロボット200に実行させる。「話しかけられた」場合、動作制御部112は、話しかけに反応する動作をロボット200に実行させる。「逆さにされた」場合、動作制御部112は、不快な反応を示す動作をロボット200に実行させる。「撫でられた」場合、動作制御部112は、喜ぶ動作をロボット200に実行させる。
【0048】
ここで、動作制御部112がロボット200に実行させる動作は、駆動部220によるモーションと、出力部230による出力と、のうちの一方又は両方により実現される。具体的には、駆動部220によるモーションは、ひねりモータ221又は上下モータ222の駆動により頭部204を回転させることに相当する。また、出力部230による出力は、スピーカ231から鳴き声を出力すること、ディスプレイに画像を表示させること、又は、LEDを発光させることに相当する。ロボット200の動作は、ロボット200の仕草、振る舞い等と呼んでも良い。
【0049】
外部刺激と対応動作との対応関係は、図示を省略するが、動作テーブルとして記憶部120に予め記憶されている。動作制御部112は、動作テーブルを参照して、外部刺激取得部111により取得された外部刺激に対応する対応動作をロボット200に実行させる。
【0050】
なお、動作制御部112は、外部刺激取得部111により外部刺激が取得されていない場合、自発的な動作をロボット200に実行させる。ここで、自発的な動作は、例えば、呼吸を模擬した動作等のように、外部刺激に依存しない動作を意味する。
【0051】
パラメータ更新部113は、外部刺激取得部111により取得された外部刺激に応じて、感情パラメータ121を更新する。感情パラメータ121は、ロボット200の疑似的な感情を示すパラメータである。感情パラメータ121は、ロボット200が生き物の動作を模擬することができるように、ロボット200に疑似的な感情の発現度合いを表現するために設定される。ロボット200は、感情パラメータ121に応じて動作する。
【0052】
より詳細には、感情パラメータ121は、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表される。ポジショニングマップは、(X,Y)、(X,Y,Z)等のような、少なくとも2つの座標軸による座標値により位置を表すマップである。以下では、ポジショニングマップの一例として、図9に示す感情マップ300を用いて説明する。
【0053】
感情マップ300は、図9に示すように2次元の座標系で表され、擬似的な安心度を表すための第1の座標軸であるX軸と、擬似的な活性度を表すための第2の座標軸であるY軸と、を有する。X座標の値(X値)が正でその絶対値が大きくなるほど安心度が高く、Y座標の値(Y値)が正でその絶対値が大きくなるほど興奮度が高い感情を表す。また、X値が負でその絶対値が大きくなるほど不安度が高く、Y値が負でその絶対値が大きくなるほど無気力度が高い感情を表す。
【0054】
感情パラメータ121は、このような安心度及び不安度を表すX値と興奮度及び無気力度とを表すY値とを用いて、感情マップ300上における位置である座標値(X,Y)により表される。例えば、X値とY値との両方が正で大きい場合、感情パラメータ121は「喜び」の感情を表す。X値が負で大きくY値が正で大きい場合、感情パラメータ121は「イライラ」の感情を表す。X値とY値との両方が負で大きい場合、感情パラメータ121は「悲しみ」の感情を表す。X値が正で大きくY値が負で大きい場合、感情パラメータ121は「平穏」の感情を表す。
【0055】
感情マップ300上の原点(0,0)は、通常時の感情を表す。感情パラメータ121の初期値は、原点(0,0)である。感情マップ300のサイズは、X値とY値ともに最大値が200、最小値が-200となっている。
【0056】
パラメータ更新部113は、このような感情マップ300上において感情パラメータ121の位置を移動させることにより、感情パラメータ121を更新する。例えば、外部刺激取得部111により「大きな音がした」という外部刺激が取得された場合、パラメータ更新部113は、図10に示すように、感情マップ300上において感情パラメータ121を左に移動させる。これにより、不安な感情が増加する。或いは、外部刺激取得部111により「撫でられた」という外部刺激が取得された場合、パラメータ更新部113は、図11に示すように、感情マップ300上において感情パラメータ121を右上に移動させる。これにより、喜びの感情が増加する。
【0057】
より詳細には、パラメータ更新部113は、下記の(1)式に従って、感情マップ300における感情パラメータ121の移動方向と移動量とを示す移動ベクトル(NextX,NextY)を導出する。そのために、パラメータ更新部113は、係数α、L、Px、Py、Fx、Fy、dX、dYを取得する。なお、(1)式において「*」は乗算を表す。
【0058】
(NextX,NextY) = α*L*(Px*Fx*dX,Py*Fy*dY) …(1)
【0059】
第1に、パラメータ更新部113は、外部刺激取得部111により取得された外部刺激に応じた評価値である、感情パラメータ121の基本移動量dX,dYを取得する。そのために、パラメータ更新部113は、イベント管理テーブル123を参照する。
【0060】
イベント管理テーブル123は、ロボット200に対して発生するイベント(外部刺激)を管理するためのテーブルである。具体的には図12に示すように、イベント管理テーブル123は、発生する可能性がある複数のイベントのそれぞれに対して、基本移動量dX,dYと、補正値Fx,Fyと、好み係数Lと、を紐づけて定めている。
【0061】
パラメータ更新部113は、外部刺激取得部111により外部刺激が取得されると、イベント管理テーブル123に定められた複数のイベントのうちから、取得された外部刺激に対応するイベントを特定する。そして、パラメータ更新部113は、イベント管理テーブル123において、特定したイベントに紐づけられた基本移動量dX,dYを読み出す。
【0062】
なお、イベント管理テーブル123において、特定したイベントに紐づけられた基本移動量dX,dYの値が複数存在する場合には、パラメータ更新部113は、複数の値のうちからランダムで選択する。
【0063】
第2に、パラメータ更新部113は、補正値Fx,Fyを取得する。ここで、補正値Fx,Fyは、感情マップ300上における感情パラメータ121の移動方向と移動量とを補正するための係数である。補正値Fx,Fyは、イベント管理テーブル123において、複数のイベントのそれぞれに紐づけられている。パラメータ更新部113は、基本移動量dX,dYと同様に、イベント管理テーブル123を参照して、特定されたイベントに紐づけられた補正値Fx,Fyを読み出す。
【0064】
より詳細には、補正値Fx,Fyは、イベントによって、固定値で定められる場合と、感情マップ300上における感情パラメータ121の現在位置に依存する変動値として定められる場合と、が存在する。
【0065】
図12に示すイベント管理テーブル123の例では、イベント番号1,2,7~12のイベントに紐づけられた補正値Fx,Fyは、固定値で定められている。パラメータ更新部113は、外部刺激取得部111により取得された外部刺激が、イベント番号1,2,7~12のいずれかのイベントに該当する場合、イベント管理テーブル123から、固定値である補正値Fx,Fyを読み出す。
【0066】
一例として、図13に、イベント番号1の「大きな音がした」場合における補正値Fx,Fyの2次元分布を感情マップ300上に示す。イベント管理テーブル123において、イベント番号1に紐づけられた補正値Fx,Fyは、固定値(-2,0)である。そのため、イベント番号1に紐づけられた補正値Fx,Fyの方向は、図13に示すように、感情マップ300上の位置によらずに、-X方向に設定されている。
【0067】
これに対して、イベント番号3~6のイベントに紐づけられた補正値Fx,Fyは、固定値ではなく、感情マップ300上における位置に応じた変動値として定められている。一例として、図14に、イベント番号3の「水平で、体を撫でられた」場合における補正値Fx,Fyの2次元分布を感情マップ300上に示す。この例では、X値が負でありY値が正である第2象限と、X値とY値とが共に負である第3象限とでは、補正値Fx,Fyの方向は、原点(0,0)に向かう方向に設定されている。また、X値とY値とが共に正である第1象限と、X値が正であるY値が負である第4象限とでは、補正値Fx,Fyの方向は、右上の座標値(200,200)に向かう方向に設定されている。
【0068】
言い換えると、イベント番号3の補正値Fx,Fyは、第2、第3象限では、感情パラメータ121の位置を感情マップ300上における基準位置である原点に近付けるように補正し、第1、第4象限では、感情パラメータ121の位置を感情マップ300上における右上の位置に近付けるように補正する。なお、イベント番号4~6の補正値Fx,Fyも、イベント番号1と同様の傾向を示すとして説明する。
【0069】
このような変動値である補正値Fx,Fyは、ルックアップテーブル124に定められている。図15に、ルックアップテーブル124の例を示す。ルックアップテーブル124は、イベント番号3~6に対応するテーブル1~4を有する。テーブル1~4は、それぞれイベント番号3~6の外部刺激が取得された場合に使用される補正値Fx,Fyを、感情マップ300上における感情パラメータ121の現在位置に依存する値として定められている。
【0070】
より詳細には、テーブル1~4のそれぞれは、入力値である、感情マップ300上における感情パラメータ121の現在位置と、出力値である補正値Fx,Fyと、を紐づけて定めている。パラメータ更新部113は、外部刺激取得部111により取得された外部刺激が、イベント番号3~6のいずれかのイベントに該当する場合、イベント管理テーブル123を参照して、取得された外部刺激に対応する補正値Fx,Fyが定められているテーブルを特定する。そして、パラメータ更新部113は、ルックアップテーブル124を参照して、特定したテーブルにおいて感情パラメータ121の現在位置に紐づけられた補正値Fx,Fyを読み出す。
【0071】
このように、補正値Fx,Fyは、感情パラメータ121の位置に応じた変動値として定められる場合、感情パラメータ121の位置を、感情マップ300上における基準位置である原点又は右上の位置に近付けるように補正する。
【0072】
このような補正値Fx,Fyを用いて感情パラメータ121の位置を補正する理由は、基本移動量dX,dYだけでは、生き物の自然な感情変化を表現することが難しいためである。具体的に図16に示すように、感情パラメータ121が感情マップ300の第2象限にある状態において、イベント番号3~6の外部刺激に応じて、感情パラメータ121が感情マップ300の第1象限に移動する場合を例にとって説明する。
【0073】
基本移動量dX,dYのみを用いて感情パラメータ121の移動させる場合、感情パラメータ121は、図16において破線矢印で示すように、原点を通らずに、感情マップ300上における左上から右上に向けて移動する。そのため、ロボット200の疑似的な感情は、「イライラ」から「興奮」を通って「喜び」に変化する。
【0074】
このように感情が「イライラ」から「喜び」に変化する際に「興奮」を経由することは、実際の生き物の感情変化としては不自然となる。実際の生き物の感情は、「イライラ」から「喜び」に変化する場合、「イライラ」から一旦「通常」に戻った後で「喜び」に変化する傾向がある。このような感情変化の傾向を考慮して、図14及び図15に示した補正値Fx,Fyは、感情マップ300上における感情パラメータ121の位置を、第2、第3象限では原点に近付くように補正し、第1、第4象限では右上の位置に近付くように補正するように設定されている。
【0075】
このような補正値Fx,Fyを基本移動量dX,dYに加味して感情パラメータ121の移動させる場合、感情パラメータ121は、図16において実線矢印で示すように、ロボット200の疑似的な感情は、「イライラ」から「通常」に戻った後で「喜び」に変化する。これにより、感情マップ300上における感情パラメータ121の位置が異なる複数の象限にわたって移動する場合に、生き物の感情変化をよりリアルに模擬することができる。
【0076】
第3に、パラメータ更新部113は、性格係数Px,Pyを取得する。性格係数Px,Pyは、ロボット200の疑似的な性格を示す係数である。ロボット200の疑似的な性格は、ロボット200に個性を持たせるために、ロボット200の個体毎に設定されるパラメータである。
【0077】
ロボット200の性格は、一例として、「陽気」と「活発」と「シャイ」と「甘えん坊」という4種類の性格値により定められる。これら4種類の性格値は、予め固定値としてロボット200に与えられても良いし、時間の経過に従って変化しても良い。パラメータ更新部113は、ロボット200に設定された4種類の性格値から、下記の(2)式に従って性格係数Px,Pyを計算する。
【0078】
dX>0の場合、Px=(10+陽気の性格値)/20
dX≦0の場合、Px=(10+シャイの性格値)/20
dY>0の場合、Py=(10+活発の性格値)/20
dY≦0の場合、Py=(10+甘えん坊の性格値)/20
…(2)
【0079】
具体的に説明すると、パラメータ更新部113は、基本移動量dX,dYが正であるか否かに応じて異なる式に従って、性格係数Px,Pyを計算する。例えば、ロボット200に設定された4種類の性格値が「陽気=0,活発=1,シャイ=2,甘えん坊=10」である場合、パラメータ更新部113は、下記の(3)式のように性格係数Px,Pyを計算する。
【0080】
dX>0の場合、Px=(10+0)/20=0.50
dX≦0の場合、Px=(10+2)/20=0.60
dY>0の場合、Py=(10+1)/20=0.55
dY≦0の場合、Py=(10+10)/20=1.00
…(3)
【0081】
第4に、パラメータ更新部113は、好み係数Lを取得する。好み係数Lは、外部刺激(イベント)に対するロボット200の疑似的な好みを示す係数である。好み係数Lは、ロボット200に個性を持たせるために、ロボット200の個体毎に設定される。
【0082】
好み係数Lは、イベント管理テーブル123において、複数のイベントのそれぞれに紐づけられている。パラメータ更新部113は、基本移動量dX,dY及び補正値Fx,Fyと同様に、イベント管理テーブル123を参照して、特定されたイベントに紐づけられた好み係数Lを読み出す。
【0083】
一例として、好み係数Lは、ロボット200が好きなイベントに対しては1.0よりも大きい値となり、ロボット200が嫌いなイベントに対しては1.0よりも小さい値となり、それ以外は1.0となる。図12に示すイベント管理テーブル123の例では、ロボット200が話しかけられることを好む場合、「話しかけられた」ことに対応する好み係数L=2.0と設定される。また、ロボット200が裏返されることを嫌う場合、「裏返された」ことに対応する好み係数L=0.7と設定される。このように、好み係数Lは、イベント毎に、ロボット200に対して固定値として設定される。
【0084】
第5に、パラメータ更新部113は、履歴係数αを取得する。履歴係数αは、過去のイベントの履歴に基づく係数であって、外部刺激取得部111により取得された外部刺激の過去の発生頻度を示す係数である。
【0085】
パラメータ更新部113は、履歴係数αを取得するために、履歴バッファ125を参照する。履歴バッファ125は、外部刺激取得部111により過去に取得された外部刺激のデータを蓄積する。一例として図17に示すように、履歴バッファ125は、過去に発生したイベントのイベント番号とその発生時刻とを紐づけて格納する。外部刺激取得部111は、外部刺激を取得すると、取得した外部刺激を示すイベント番号と、その外部刺激を取得した時刻である発生時刻と、を紐づけて、履歴バッファ125に保存する。
【0086】
より詳細には、履歴バッファ125は、リングバッファ構造をしている。言い換えると、履歴バッファ125に格納可能なデータの個数には上限(図17の例ではN個)が設けられている。履歴バッファ125に既にN個のデータが格納されている状態において、新たなデータが履歴バッファ125に格納される場合、履歴バッファ125に格納されているN個のデータのうちで最も発生時刻が古いデータが削除される。また、履歴バッファ125に空きがある場合であっても、一定時間毎に古いデータが削除されても良い。
【0087】
パラメータ更新部113は、履歴バッファ125を参照して、イベントの発生頻度をイベント毎に計算する。そして、パラメータ更新部113は、発生頻度に応じて、イベント毎に履歴係数αを導出する。
【0088】
一般的に、発生頻度が少ないイベントほど、そのイベントに慣れていないため、そのイベントが発生した場合に刺激が大きく感じられる。これに対して、発生頻度が多いイベントほど、そのイベントに慣れるため、そのイベントが発生した場合に刺激が小さく感じられる。
【0089】
そのため、パラメータ更新部113は、発生頻度が少ないイベントほど、そのイベントが発生した場合に、感情マップ300上における感情パラメータ121の位置を現在位置から大きく移動させるように、履歴係数αを1.0よりも大きい値に設定する。そして、パラメータ更新部113は、発生頻度が多いイベントほど、そのイベントが発生した場合に感情マップ300上における感情パラメータ121の位置を現在位置からあまり大きくは移動させないように、履歴係数αを1.0よりも小さい値に設定する。
【0090】
このようにして基本移動量dX,dYと補正値Fx,Fyと性格係数Px,Pyと好み係数Lと履歴係数αとを取得すると、パラメータ更新部113は、上記(1)式に従って、移動ベクトル(NextX,NextY)を計算する。
【0091】
移動ベクトル(NextX,NextY)を計算すると、パラメータ更新部113は、ゆらぎ制御を行うために、ゆらぎ成分を計算する。ゆらぎ成分は、感情パラメータ121が自然に変化するようにするためのパラメータである。具体的には図18に示すように、ゆらぎ成分は、半径成分である長さLenと角度成分である角度rとを用いて、極座標により表される。
【0092】
パラメータ更新部113は、下記(4)式に従って、ゆらぎ成分を加味した最終的な移動ベクトル(Nx,Ny)を計算する。
【0093】
(Nx,Ny)=YURAGI(NextX, NextY)
Nx = Len*cоs(r) + NextX
Ny = Len*sin(r) + NextY
…(4)
【0094】
より詳細には、ゆらぎ成分は連続的な変化が望ましいので、長さLenと角度rは、乱数を用いて、下記の(5)式のように設定される。(5)式において、rand()は、一定時間(例えば1分)ごとに+1から-1までの範囲の値をランダムでとる。
【0095】
Len = Len+rand()
r = r+rand()
…(5)
【0096】
このような乱数を用いることで、長さLenは、その初期値が0であり、-50から+50までの範囲でランダムな値をとる。また、角度rは、その初期値が0であり、-360°から+360°までの範囲でランダムな値をとる。
【0097】
より詳細には、ゆらぎ成分が、生き物が有する日々の気分の変化やバイオリズムを模擬するようにするため、角度rは、所定の周期(例えば1日程度の周期)で一周するように設定される。言い換えると、角度rは、完全なランダムに設定されるのではなく、所定の周期における変化量が360°になる制限の下で、ランダムな値に設定される。
【0098】
以上のようなゆらぎ成分を加味した移動ベクトル(Nx,Ny)を計算すると、パラメータ更新部113は、計算した移動ベクトル(Nx,Ny)に従って、感情マップ300上における感情パラメータ121の位置を移動させる。具体的に説明すると、パラメータ更新部113は、感情マップ300上における感情パラメータ121の位置を、感情パラメータ121の現在位置の座標値(X0,Y0)に移動ベクトル(Nx,Ny)を加えた座標値(X0+Nx,Y0+Ny)の目標位置に移動させる。
【0099】
ここで、移動ベクトル(Nx,Ny)は、感情パラメータ121の位置を感情マップ300上の基準位置に近付けるように補正する補正値Fx,Fyに基づいて導出されたものである。そのため、感情パラメータ121の位置は、図16において実線矢印で示したように、「イライラ」から「通常」に戻った後で「喜び」に変化する。このように、パラメータ更新部113は、感情マップ300上における感情パラメータ121の位置を異なる複数の象限にわたって移動させる場合、感情パラメータ121の位置を、現在位置から基準位置に向けて移動させてから目標位置に移動させる。これにより、生き物の感情の自然な変化を表現することができる。
【0100】
なお、パラメータ更新部113は、外部刺激に応じて感情パラメータ121を更新することに加えて、外部刺激が発生していない場合にも、感情パラメータ121を更新する。具体的に説明すると、パラメータ更新部113は、外部刺激取得部111により取得された外部刺激に応じて感情パラメータ121を更新した後、外部刺激取得部111により次に外部刺激が取得されるまでの間、感情マップ300上における感情パラメータ121の位置を、時間の経過にともに基準位置である原点(0,0)に近付ける。これにより、外部刺激が発生していない間は、ロボット200の疑似的な感情が徐々に通常の状態に戻るようにする。
【0101】
動作制御部112は、パラメータ更新部113により更新された感情パラメータ121に応じて、ロボット200を動作させる。言い換えると、動作制御部112は、パラメータ更新部113により感情パラメータ121が更新された後、所定のタイミングが到来すると、更新後の感情パラメータ121に対応する動作である感情動作をロボット200に実行させる。
【0102】
例えば、動作制御部112は、感情パラメータ121が「喜び」を表している場合には、喜んでいるように見える動作をロボット200に実行させ、感情パラメータ121が「悲しみ」を表している場合には、悲しみように見える動作をロボット200に実行させる。或いは、動作制御部112は、感情パラメータ121が「喜び」を表している場合には、喜んでいるように聞こえる鳴き声を出力部230から出力させ、感情パラメータ121が「悲しみ」を表している場合には、悲しみように聞こえる鳴き声を出力部230から出力させる。また、出力部230がディスプレイ、LED等を備える場合には、動作制御部112は、喜びや悲しみ等の感情をディスプレイに表示したり、発光する光の色や明るさで表現したりしても良い。
【0103】
より詳細には、動作制御部112は、感情表現テーブル122を参照して、パラメータ更新部113により更新された感情パラメータ121に対応する動作をロボット200に実行させる。感情表現テーブル122は、感情マップ300上の座標で表される各感情に対応する動作を定めるテーブルである。感情表現テーブル122は、一例として、2次元配列[X’][Y’]により表される。
【0104】
感情表現テーブル122におけるX’及びY’の値は、感情マップ300上の座標値(X,Y)に対応する。具体的には、感情表現テーブル122におけるX’及びY’の値は、感情マップ300上の座標値(X,Y)を基準倍率値で除算した値(小数点以下四捨五入)に対応する。一例として、基準倍率値を100とすると、感情マップ300上の座標値(X,Y)の範囲(-200から+200)に対して、X’及びY’の値は-2,-1,0,1,2の5つの値を取り得る。この場合、感情表現テーブル122は、5×5=25通りの動作を定める。
【0105】
動作制御部112は、感情マップ300上における感情パラメータ121の座標値(X,Y)に対応するX’及びY’の値を特定する。そして、動作制御部112は、感情表現テーブル122において、特定したX’及びY’により表される動作を、ロボット200に実行させる。
【0106】
次に、図19を参照して、本実施形態に係るロボット制御処理の流れを説明する。図19に示すロボット制御処理は、ロボット200に電源が投入されたことを契機として、制御装置100の制御部110により実行される。図19に示すロボット制御処理は、ロボット制御方法の一例である。
【0107】
ロボット制御処理を開始すると、制御部110は、初期化処理を実行する(ステップS1)。初期化処理において、制御部110は、感情マップ300上における感情パラメータ121の位置を原点に設定し、移動ベクトル(NextX,NextY)及び(Nx,Ny)の値と、ゆらぎ成分(L,r)の値を0に設定する。また、制御部110は、システムタイマーを0に設定し、履歴バッファ125に格納されているイベント番号と発生時刻のデータを全て削除する。
【0108】
初期化処理を実行すると、制御部110は、外部刺激取得部111として機能し、外部刺激を取得したか否かを判定する(ステップS2)。具体的に説明すると、制御部110は、センサ部210による検出値に基づいて、例えば、「大きな音がした」、「話しかけられた」、「撫でられた」、「持ち上げられた」、「逆さにされた」、「明るくなった」、「暗くなった」等の外部刺激が発生したか否かを判定する。ステップS2は、外部刺激取得ステップの一例である。
【0109】
外部刺激を取得した場合(ステップS2;YES)、制御部110は、動作制御部112として機能し、取得された外部刺激に対応する動作をロボット200に実行させる(ステップS3)。例えば、「大きな音がした」場合、制御部110は、大きな音に反応する動作をロボット200に実行させる。「逆さにされた」場合、制御部110は、逆さにされたことに反応する動作をロボット200に実行させる。「話しかけられた」場合、制御部110は、話しかけられたことに反応する動作をロボット200に実行させる。「撫でられた」場合、制御部110は、撫でられたことに反応する動作をロボット200に実行させる。
【0110】
次に、制御部110は、パラメータ更新部113として機能し、感情パラメータ121の移動ベクトルを計算する(ステップS4)。ステップS4における移動ベクトル計算処理の詳細は、図20を参照して説明する。
【0111】
図20に示す移動ベクトル計算処理を開始すると、第1に、制御部110は、感情パラメータ121の基本移動量dX,dYを取得する(ステップS41)。制御部110は、イベント管理テーブル123を参照して、ステップS2で取得された外部刺激に対応する基本移動量dX,dYを読み出す。
【0112】
第2に、制御部110は、補正値Fx,Fyを取得する(ステップS42)。制御部110は、イベント管理テーブル123を参照して、ステップS2で取得された外部刺激に対応する補正値Fx,Fyを読み出す。このとき、取得された外部刺激に対応する補正値Fx,Fyがルックアップテーブル124に定められている場合には、制御部110は、ルックアップテーブル124を参照して、感情マップ300上における感情パラメータ121の現在位置に応じた補正値Fx,Fyを読み出す。
【0113】
第3に、制御部110は、性格係数Px,Pyを取得する(ステップS43)。制御部110は、上記(2)式に従って、ロボット200に設定された4種類の性格値と基本移動量dX,dYとから、性格係数Px,Pyを計算する。
【0114】
第4に、制御部110は、好み係数Lを取得する(ステップS44)。制御部110は、イベント管理テーブル123を参照して、ステップS2で取得された外部刺激に対応する好み係数Lを読み出す。
【0115】
第5に、制御部110は、履歴係数αを取得する(ステップS45)。制御部110は、履歴バッファ125を参照して、ステップS2で取得された外部刺激の過去の発生頻度を計算する。そして、制御部110は、計算した発生頻度が小さいほど、履歴係数αとして大きい値を設定する。
【0116】
このようにして係数α、L、Px、Py、Fx、Fy、dX、dYを取得すると、制御部110は、上記(1)式に従って、移動ベクトル(NextX,NextY)を計算する(ステップS46)。そして、制御部110は、上記(4)式に従って、ゆらぎ成分を加味した移動ベクトル(Nx,Ny)を計算する(ステップS47)。以上により、図20に示した移動ベクトル計算処理は終了する。
【0117】
図19に戻って、ステップS4で感情パラメータ121の移動ベクトル(Nx,Ny)を計算すると、制御部110は、パラメータ更新部113として機能し、感情マップ300上で感情パラメータ121を移動させる(ステップS5)。制御部110は、感情パラメータ121の現在位置に、計算した移動ベクトル(Nx,Ny)を加算した位置を、感情パラメータ121の新たな位置として設定する。ステップS5は、パラメータ更新ステップの一例である。
【0118】
感情パラメータ121を移動させると、制御部110は、動作制御部112として機能し、移動後の感情パラメータ121に対応する動作をロボット200に実行させる(ステップS6)。例えば、制御部110は、感情パラメータ121が「喜び」を表している場合には、喜んでいるように見える動作をロボット200に実行させ、感情パラメータ121が「悲しみ」を表している場合には、悲しみように見える動作をロボット200に実行させる。ステップS6は、動作制御ステップの一例である。
【0119】
ロボット200を動作させると、制御部110は、履歴バッファ125を更新する(ステップS7)。制御部110は、ステップS2で取得された外部刺激を示すイベント番号と、その外部刺激が取得された時刻と、を紐づけて履歴バッファ125に保存する。
【0120】
履歴バッファ125を更新すると、制御部110は、必要に応じて、割り込み処理を実行する(ステップS8)。具体的には、制御部110は、一定の時間間隔毎(例えば1分周期)で、割り込み処理を実行する。ステップS8における割り込み処理の詳細は、図21を参照して説明する。
【0121】
図21に示す割り込み処理を開始すると、制御部110は、システムタイマーを現在時刻に更新する(ステップS81)。例えば1分周期で割り込み処理を実行する場合には、制御部110は、システムタイマーの現在時刻を示す値に60秒を加算する。
【0122】
システムタイマーを更新すると、制御部110は、ゆらぎ成分を設定する(ステップS82)。制御部110は、上記(5)式を用いて、乱数を用いて、長さLenと角度rとを設定する。
【0123】
ゆらぎ成分を設定すると、制御部110は、履歴バッファ125を更新する(ステップS83)。制御部110は、履歴バッファ125に格納されているデータのうちの、現在時刻から1日よりも前のデータを削除する。以上により、図21に示した割り込み処理は終了する。
【0124】
図19に戻って、割り込み処理を実行すると、制御部110は、処理をステップS2に戻し、再度、外部刺激を取得したか否かを判定する。外部刺激を取得した場合、制御部110は、ステップS4~S8の処理を再度実行する。
【0125】
一方で、ステップS2において、外部刺激を取得していない場合(ステップS2;NO)、制御部110は、動作制御部112として機能し、自発的な動作をロボット200に実行させる(ステップS9)。具体的に説明すると、制御部110は、例えば呼吸を模擬する動作のような、外部刺激に依存しない動作をロボット200に実行させる。
【0126】
次に、制御部110は、パラメータ更新部113として機能し、感情マップ300上において感情パラメータ121を徐々に原点に移動させる(ステップS10)。これにより、外部刺激が発生していない間は、ロボット200の疑似的な感情は、徐々に通常の状態に戻る。
【0127】
その後、制御部110は、ステップS8で必要に応じて割り込み処理を実行し、処理をステップS2に戻す。このように、制御部110は、ロボット200に電源が投入されており、ロボット200が正常に動作可能である限り、ステップS2~S10の処理を繰り返し実行する。
【0128】
以上説明したように、本実施形態に係るロボット200は、疑似的な感情を示す感情パラメータ121に応じて動作するロボットであって、感情パラメータ121を更新する場合、外部刺激に応じた評価値である基本移動量dX,dYと、感情マップ300上における感情パラメータ121の現在位置に応じた補正値Fx,Fyと、に基づいて、感情マップ300上における感情パラメータ121の位置を移動させる。補正値Fx,Fyに基づくことで、例えば感情マップ300上における感情パラメータ121の位置が原点を通るように移動させるというように、基本移動量dX,dYだけでは表現しきれない複雑な感情変化を表現することが可能になる。その結果、本実施形態に係るロボット200は、生き物の感情の自然な変化を模擬することができ、生き物をよりリアルに模擬することができる。
【0129】
また、本実施形態に係るロボット200は、性格係数Px,Pyと好み係数Lと履歴係数αとゆらぎ成分とに更に基づいて、感情マップ300上における感情パラメータ121の位置を移動させる。性格係数Px,Py又は好み係数Lに基づくことで、性格又は外部刺激に対する好き嫌いによって感情変化の仕方を異ならせることができる。そのため、ロボット200に個性を持たせることができる。また、履歴係数αに基づくことで、過去の発生頻度の大きさによって感情変化の仕方を異ならせることができる。更には、ゆらぎ成分に基づくことで、感情を連続的に変化させることができ、バイオリズムのような感情のゆらぎを表現することができる。このように、性格係数Px,Pyと好み係数Lと履歴係数αとゆらぎ成分とに更に基づくことにより、本実施形態に係るロボット200は、生き物の感情の自然な変化をよりリアルに模擬することができる。
【0130】
(変形例)
以上に本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0131】
例えば、上記実施形態では、パラメータ更新部113は、基本移動量dX,dY及び補正値Fx,Fyに加えて、性格係数Px,Pyと好み係数Lと履歴係数αとゆらぎ成分に更に基づいて、感情パラメータ121の移動ベクトル(Nx,Ny)を計算した。しかしながら、パラメータ更新部113は、性格係数Px,Pyと好み係数Lと履歴係数αとゆらぎ成分とのうちの一部又は全部に基づかずに、移動ベクトル(Nx,Ny)を計算しても良い。性格係数Px,Pyと好み係数Lと履歴係数αとゆらぎ成分に基づくことで、より柔軟に移動ベクトル(Nx,Ny)を計算することができる一方で、これらのうちの一部又は全部に基づかないことで、よりシンプルに移動ベクトル(Nx,Ny)を計算することができる。
【0132】
上記実施形態では、補正値Fx,Fyは、イベント番号3~6の外部刺激が取得された場合に、感情マップ300上における感情パラメータ121の位置を、基準位置である原点又は右上の位置に近付けるように補正する値であった。しかしながら、補正値Fx,Fyが感情パラメータ121の現在位置に応じた変動値として定められる外部刺激は、イベント番号3~6の外部刺激に限らず、どのような外部刺激であっても良い。
【0133】
また、基準位置は、原点又は右上の位置に限らず、感情マップ300上におけるどのような位置であっても良い。例えば、基準位置は、ロボット200に設定された性格係数Px,Pyによって変化しても良い。これにより、性格の違いによって感情変化の仕方を異ならせることができるため、ロボット200に個性を持たせることができる。
【0134】
また、上記実施形態では、補正値Fx,Fyは、図14及び図15に示したように、感情パラメータ121の位置を、第2、第3象限では原点に近付け、第1、第4象限では右上の位置に近付けるように定められていた。しかしながら、補正値Fx,Fyの2次元分布はこれに限らない。また、補正値Fx,Fyは、感情マップ300上における特定の基準位置に近付けるように補正することに限らない。言い換えると、補正値Fx,Fyは、感情パラメータ121の現在位置にどのように依存する変動値として定められていても良い。補正値Fx,Fyの方向が特定の基準位置に向かう方向に設定されていない場合であっても、補正値Fx,Fyを変動値として定めることにより、基本移動量dX,dYのみでは表現しきれない複雑な感情の変化を表現することが可能になる。
【0135】
上記実施形態では、感情マップ300は、2次元の座標系で表された。しかしながら、感情マップ300は、次元以上の座標系で表されても良く、感情パラメータ121として感情マップ300の次元数の個数の値が設定されるようにしても良い。また、感情マップ300の座標軸は、疑似的な安心度と活性度に限らず、他の感情の程度を表すものであっても良い。
【0136】
上記実施形態では、外装201は、頭部204から胴体部206にわたって寸胴形状に形成されており、ロボット200は、腹ばい形状をしていた。しかしながら、ロボット200は、腹ばい形状の生き物を模したものであることに限らない。例えば、ロボット200は、手足を有した形状をしており、4足歩行又は2足歩行の生き物を模擬したものであっても良い。
【0137】
上記実施形態では、ロボット200に制御装置100が内蔵されていたが、制御装置100は、ロボット200に内蔵されずに別個の装置(例えばサーバ)であってもよい。制御装置100がロボット200の外部に存在する場合、ロボット200は、通信部を介して制御装置100と通信して互いにデータを送受信する。このようなロボット200との通信を介して、外部刺激取得部111は、センサ部210が検出した外部刺激を取得し、動作制御部112は、駆動部220や出力部230を制御する。
【0138】
上記実施形態では、制御部110において、CPUがROMに記憶されたプログラムを実行することによって、外部刺激取得部111、動作制御部112及びパラメータ更新部113の各部として機能した。しかしながら、本発明において、制御部110は、CPUの代わりに、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又は、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、外部刺激取得部111、動作制御部112及びパラメータ更新部113の各部として機能しても良い。この場合、各部の機能それぞれを個別のハードウェアで実現しても良いし、各部の機能をまとめて単一のハードウェアで実現しても良い。また、各部の機能のうちの、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現しても良い。
【0139】
なお、本発明に係る機能を実現するための構成を予め備えたロボットとして提供できることはもとより、プログラムの適用により、既存の情報処理装置等を、本発明に係るロボットとして機能させることもできる。すなわち、前記実施形態で例示したロボット200による各機能構成を実現させるためのプログラムを、既存の情報処理装置等を制御するCPU等が実行できるように適用することで、本発明に係るロボットとして機能させることができる。
【0140】
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、メモリカード等のコンピュータ読み取り可能な記憶媒体に格納して適用できる。さらに、プログラムを搬送波に重畳し、インターネットなどの通信媒体を介して適用することもできる。例えば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)にプログラムを掲示して配信してもよい。そして、このプログラムを起動し、OS(Operating System)の制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【0141】
以上、本発明の好ましい実施形態等について説明したが、本発明は上述した実施形態等に制限されることはなく、特許請求の範囲に記載された範囲を逸脱することなく、上述した実施形態等に種々の変形及び置換を加えることができる。
【符号の説明】
【0142】
100…制御装置、110…制御部、111…外部刺激取得部、112…動作制御部、113…パラメータ更新部、120…記憶部、121…感情パラメータ、122…感情表現テーブル、123…イベント管理テーブル、124…ルックアップテーブル、125…履歴バッファ、200…ロボット、201…外装、202…装飾部品、203…毛、204…頭部、205…連結部、206…胴体部、207…筐体、210…センサ部、211…タッチセンサ、212…加速度センサ、213…マイクロフォン、214…ジャイロセンサ、215…照度センサ、220…駆動部、221…ひねりモータ、222…上下モータ、230…出力部、231… スピーカ、240…操作部、250…バッテリ、300…感情マップ、BL…バスライン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
【手続補正書】
【提出日】2023-12-12
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
上記目的を達成するため、本発明に係るロボットの一態様は、
疑似的な感情を示す感情パラメータに応じて動作するロボットであって、
外部刺激を取得する外部刺激取得手段と、
前記外部刺激取得手段により取得された前記外部刺激の種類に応じて前記感情パラメータを更新するパラメータ更新手段と、
前記パラメータ更新手段により更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御手段と、
を備え、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された前記外部刺激の種類に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
疑似的な感情を示す感情パラメータに応じて動作するロボットであって、
外部刺激を取得する外部刺激取得手段と、
前記外部刺激取得手段により取得された前記外部刺激の種類に応じて前記感情パラメータを更新するパラメータ更新手段と、
前記パラメータ更新手段により更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御手段と、
を備え、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された前記外部刺激の種類に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とするロボット。
【請求項2】
前記外部刺激の種類ごとに前記評価値が対応付けられた第1テーブルと、前記ポジショニングマップ上における位置ごとに前記補正値が対応付けられた第2テーブルと、が記憶手段に記憶されており、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された外部刺激の種類に対応した評価値を前記第1テーブルから取得するとともに、前記ポジショニングマップ上における前記感情パラメータの現在位置に対応した補正値を前記第2テーブルから取得することにより、前記評価値と前記補正値とに基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1に記載のロボット。
【請求項3】
前記第2テーブルは、前記感情パラメータの現在位置が所定の象限内に位置している場合に、前記感情パラメータの位置を、前記ポジショニングマップ上における基準位置に近付けるように、前記補正値が設定されている、
ことを特徴とする請求項2に記載のロボット。
【請求項4】
前記第2テーブルは、前記ポジショニングマップ上における前記感情パラメータの位置を異なる複数の象限にわたって移動させる場合、前記感情パラメータの位置が、前記現在位置から前記基準位置に向けて移動したうえで目標位置に向かうように前記補正値が設定されている、
ことを特徴とする請求項3に記載のロボット。
【請求項5】
前記パラメータ更新手段は、前記外部刺激の種類に応じて前記感情パラメータを更新した後、前記外部刺激取得手段により次に前記外部刺激が取得されるまでの間、前記ポジショニングマップ上における前記感情パラメータの位置を、時間の経過にともに前記基準位置に近付ける、
ことを特徴とする請求項3に記載のロボット。
【請求項6】
前記基準位置は、前記ポジショニングマップの原点である、
ことを特徴とする請求項3に記載のロボット。
【請求項7】
前記ポジショニングマップは、前記少なくとも2つの座標軸として、擬似的な安心度を表すための第1の座標軸と、擬似的な活性度を表すための第2の座標軸と、を有する、
ことを特徴とする請求項1からのいずれか1項に記載のロボット。
【請求項8】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、乱数を用いたゆらぎ成分に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1から6のいずれか1項に記載のロボット。
【請求項9】
前記ゆらぎ成分は、極座標により表され、
前記ゆらぎ成分の半径成分は、乱数を用いて設定され、
前記ゆらぎ成分の角度成分は、所定の周期で一周するように設定される、
ことを特徴とする請求項8に記載のロボット。
【請求項10】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記ロボットの擬似的な性格を示す性格係数に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1からのいずれか1項に記載のロボット。
【請求項11】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記外部刺激取得手段により取得された前記外部刺激に対する前記ロボットの擬似的な好みを示す好み係数に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1からのいずれか1項に記載のロボット。
【請求項12】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記外部刺激取得手段により取得された前記外部刺激の過去の発生頻度に更に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とする請求項1から6のいずれか1項に記載のロボット。
【請求項13】
前記パラメータ更新手段は、前記感情パラメータを更新させる場合、前記発生頻度が少ないほど、前記ポジショニングマップ上における前記感情パラメータの位置を大きく移動させる、
ことを特徴とする請求項12に記載のロボット。
【請求項14】
疑似的な感情を示す感情パラメータに応じて動作するロボットの制御方法であって、
外部刺激を取得する外部刺激取得ステップと、
前記外部刺激取得ステップで取得された前記外部刺激の種類に応じて前記感情パラメータを更新するパラメータ更新ステップと、
前記パラメータ更新ステップで更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御ステップと、
を備え、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新ステップでは、前記感情パラメータを更新する場合、前記外部刺激取得ステップで取得された前記外部刺激の種類に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とするロボットの制御方法。
【請求項15】
疑似的な感情を示す感情パラメータに応じて動作するロボットのコンピュータを、
外部刺激を取得する外部刺激取得手段、
前記外部刺激取得手段により取得された前記外部刺激の種類に応じて前記感情パラメータを更新するパラメータ更新手段、
前記パラメータ更新手段により更新された前記感情パラメータに応じて前記ロボットを動作させる動作制御手段、
として機能させ、
前記感情パラメータは、少なくとも2つの座標軸を有するポジショニングマップ上における位置により表され、
前記パラメータ更新手段は、前記感情パラメータを更新する場合、前記外部刺激取得手段により取得された前記外部刺激の種類に応じた評価値と、前記ポジショニングマップ上における前記感情パラメータの現在位置に応じた補正値と、に基づいて、前記ポジショニングマップ上における前記感情パラメータの位置を移動させる、
ことを特徴とするプログラム。