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

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

▶ ソフトバンクグループ株式会社の特許一覧

<>
  • 特開-行動制御システム及びプログラム 図1
  • 特開-行動制御システム及びプログラム 図2
  • 特開-行動制御システム及びプログラム 図3
  • 特開-行動制御システム及びプログラム 図4
  • 特開-行動制御システム及びプログラム 図5
  • 特開-行動制御システム及びプログラム 図6
  • 特開-行動制御システム及びプログラム 図7
  • 特開-行動制御システム及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025003299
(43)【公開日】2025-01-09
(54)【発明の名称】行動制御システム及びプログラム
(51)【国際特許分類】
   G06N 3/004 20230101AFI20241226BHJP
   G06F 3/16 20060101ALI20241226BHJP
   G06F 3/01 20060101ALI20241226BHJP
【FI】
G06N3/004
G06F3/16 650
G06F3/16 540
G06F3/01 510
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2024037892
(22)【出願日】2024-03-12
(31)【優先権主張番号】P 2023103691
(32)【優先日】2023-06-23
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】591280485
【氏名又は名称】ソフトバンクグループ株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】孫 正義
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA48
5E555BA01
5E555BB01
5E555BC04
5E555CA41
5E555CA42
5E555CA47
5E555CB64
5E555CB67
5E555DA13
5E555DA23
5E555EA19
5E555EA22
5E555EA23
5E555FA00
(57)【要約】
【課題】ユーザからの質問に対して適切な行動をロボットに実行させることが望まれている。
【解決手段】行動制御システム5は、一又は複数のユーザ10の行動を認識する行動認識部232と、一のユーザ10の行動が、質問であると認識された場合、質問の正しい回答である正回答の行動を取得する取得部235と、前記取得部235が、前記正回答が前記一のユーザ10に通知されるよりも先に、前記ユーザ10のいずれかが提供した回答である別回答を取得した場合、前記別回答に対する行動を更に決定する行動決定部236と、を含む。
【選択図】図7
【特許請求の範囲】
【請求項1】
一又は複数のユーザの行動を認識する行動認識部と、
一のユーザの行動が、質問であると認識された場合、質問の正しい回答である正回答の行動を取得する取得部と、
前記取得部が、前記正回答が前記一のユーザに通知されるよりも先に、前記ユーザのいずれかが提供した回答である別回答を取得した場合、前記別回答に対する行動を更に決定する行動決定部と、
を含む行動制御システム。
【請求項2】
前記行動決定部は、前記別回答と前記正回答とを対比して行動を決定する場合に、前記別回答と前記正回答が一致する場合と、不一致となる場合と、該当なしの場合で、行動の態様を変化させる、請求項1に記載の行動制御システム。
【請求項3】
前記行動認識部が前記一又は複数のユーザの行動をふざけた行動と認識した場合、又は、真面目な行動と認識した場合かによって、前記行動決定部は、行動の態様を変化させる、請求項2に記載の行動制御システム。
【請求項4】
コンピュータを、請求項1~請求項3のいずれか1項に記載の行動制御システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、行動制御システム及びプログラムに関する。
【背景技術】
【0002】
ユーザの状態に基づいて行動を決定するための決定情報を記憶する行動情報記憶部と、ユーザの状態を認識するユーザ状態認識部と、前記ユーザ状態認識部が認識した前記ユーザの状態と、前記決定情報とに基づいて、実行する行動を決定する行動決定部と、前記行動決定部が決定した行動を実行したことに対する前記ユーザの反応を認識する反応認識部と、前記ユーザ状態認識部が認識した前記ユーザの状態、前記行動決定部が決定した行動、及び前記反応認識部が認識した前記ユーザの反応を、外部のサーバに送信する送信部と、前記行動決定部が前記ユーザの状態と前記決定情報とに基づいて実行する行動を決定できなかった場合に、前記ユーザ状態認識部が認識した前記ユーザの状態に適した行動を、前記サーバから受信する受信部と、前記受信部が前記サーバから受信した行動に基づいて、前記決定情報を更新する行動情報更新部とを備える行動制御システムが知られている(例えば、特許文献1参照)。
【0003】
[先行技術文献]
【0004】
[特許文献]
【0005】
[特許文献1]特許6053847号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ユーザからの質問に対して適切な行動をロボットに実行させることが望まれている。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、行動制御システムが提供される。行動制御システムは、ユーザの行動を認識する行動認識部と、前記ユーザの行動が、質問であると認識された場合、質問の難易度を推定する難易度推定部と、難易度に応じたスコアが、閾値以上である場合、実行される行動として、ユーザから質問されることを喜ぶ行動、及び前記質問に対して回答する行動を決定する行動決定部と、を含む。
【0008】
行動決定部は、前記スコアの累積値が閾値以上である場合、又は難易度に応じたスコアが閾値以上となった回数が、所定回数以上である場合、実行される行動として、ユーザから質問されることを喜ぶ行動、及び前記質問に対して回答する行動を決定するようにしてもよい。
【0009】
第2の形態において、プログラムが提供される。プログラムは、コンピュータを、上記の行動制御システムとして機能させる。
【0010】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0011】
図1】第1実施形態に係るシステム5の一例を概略的に示す。
図2】第1実施形態に係るロボット100の機能構成を概略的に示す。
図3】第1実施形態に係るロボット100による動作フローの一例を概略的に示す。
図4】第2実施形態に係るロボット100の機能構成を概略的に示す。
図5】第2実施形態に係るロボット100の応答行動の発話の例を示す。
図6】第2実施形態に係るロボット100の応答行動の動きの例を示す。
図7】第2実施形態に係るロボット100による動作フローの一例を概略的に示す。
図8】コンピュータ1200のハードウェア構成の一例を概略的に示す。
【発明を実施するための形態】
【0012】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0013】
(第1実施形態)
図1は、本実施形態に係るシステム5の一例を概略的に示す。システム5は、ロボット100、ロボット101、ロボット102、及びサーバ300を備える。ユーザ10a、ユーザ10b、ユーザ10c、及びユーザ10dは、ロボット100のユーザである。ユーザ11a、ユーザ11b及びユーザ11cは、ロボット101のユーザである。ユーザ12a及びユーザ12bは、ロボット102のユーザである。なお、本実施形態の説明において、ユーザ10a、ユーザ10b、ユーザ10c、及びユーザ10dを、ユーザ10と総称する場合がある。また、ユーザ11a、ユーザ11b及びユーザ11cを、ユーザ11と総称する場合がある。また、ユーザ12a及びユーザ12bを、ユーザ12と総称する場合がある。ロボット101及びロボット102は、ロボット100と略同一の機能を有する。そのため、ロボット100の機能を主として取り上げてシステム5を説明する。
【0014】
ロボット100は、ユーザ10と会話を行ったり、ユーザ10に映像を提供したりする。このとき、ロボット100は、通信網20を介して通信可能なサーバ300等と連携して、ユーザ10との会話や、ユーザ10への映像等の提供を行う。例えば、ロボット100は、自身で適切な会話を学習するだけでなく、サーバ300と連携して、ユーザ10とより適切に会話を進められるように学習を行う。また、ロボット100は、撮影したユーザ10の映像データ等をサーバ300に記録させ、必要に応じて映像データ等をサーバ300に要求して、ユーザ10に提供する。
【0015】
また、ロボット100は、自身の感情の種類を表す感情値を持つ。例えば、ロボット100は、「喜」、「怒」、「哀」、「楽」、「快」、「不快」、「安心」、「不安」、「悲しみ」、「興奮」、「心配」、「安堵」、「充実感」、「虚無感」及び「普通」のそれぞれの感情の強さを表す感情値を持つ。ロボット100は、例えば興奮の感情値が大きい状態でユーザ10と会話するときは、早いスピードで音声を発する。このように、ロボット100は、自己の感情を行動で表現することができる。
【0016】
また、ロボット100は、ユーザ10の行動を認識する機能を有する。ロボット100は、カメラ機能で取得したユーザ10の顔画像や、マイク機能で取得したユーザ10の音声を解析することによって、ユーザ10の行動を認識する。ロボット100は、認識したユーザ10の行動等に基づいて、ロボット100が実行する行動を決定する。
【0017】
ロボット100は、ユーザ10の行動に基づいてロボット100が実行する行動を定めたルールを記憶しており、ルールに従って各種の行動を行う。
【0018】
具体的には、ロボット100には、ユーザ10の行動に基づいてロボット100の行動を決定するための反応ルールを有している。反応ルールには、例えば、ユーザ10の行動が「笑う」である場合に対して、「笑う」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「怒る」である場合に対して、「謝る」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「質問する」である場合に対して、「回答する」という行動が、ロボット100の行動として定められている。反応ルールには、ユーザ10の行動が「悲しむ」である場合に対して、「声をかける」という行動が、ロボット100の行動として定められている。
【0019】
ロボット100は、反応ルールに基づいて、ユーザ10の行動が「笑う」であると認識した場合、反応ルールで定められた「笑う」という行動を、ロボット100が実行する行動として選択する。例えば、ロボット100は、「笑う」という行動を選択した場合に、「笑う」動作を行うと共に、笑い声を表す音声を出力する。これにより、ロボット100は、ユーザ10と一緒に笑うことができる。
【0020】
また、ロボット100は、この行動によって、ユーザ10からポジティブな反応が得られたことを示すユーザ反応情報を、サーバ300に送信する。ユーザ反応情報には、例えば、「笑う」というユーザ行動、「笑う」というロボット100の行動、ユーザ10の反応がポジティブであったこと、及びユーザ10の属性が含まれる。
【0021】
サーバ300は、ロボット100から受信したユーザ反応情報を記憶する。なお、サーバ300は、ロボット100だけでなく、ロボット101及びロボット102のそれぞれからもユーザ反応情報を受信して記憶する。そして、サーバ300は、ロボット100、ロボット101及びロボット102からのユーザ反応情報を解析して、反応ルールを更新する。
【0022】
ロボット100は、更新された反応ルールをサーバ300に問い合わせることにより、更新された反応ルールをサーバ300から受信する。ロボット100は、更新された反応ルールを、ロボット100が記憶している反応ルールに組み込む。これにより、ロボット100は、ロボット101やロボット102等が獲得した反応ルールを、自身の反応ルールに組み込むことができる。
【0023】
図2は、ロボット100の機能構成を概略的に示す。ロボット100は、センサ部200と、センサモジュール部210と、格納部220と、ユーザ状態認識部230と、行動認識部232と、難易度推定部234と、行動決定部236と、行動制御部250と、制御対象252と、通信処理部280と、を有する。
【0024】
制御対象252は、表示装置、スピーカ及び目部のLED、並びに、腕、手及び足等を駆動するモータ等を含む。ロボット100の姿勢や仕草は、腕、手及び足等のモータを制御することにより制御される。ロボット100の感情の一部は、これらのモータを制御することにより表現できる。また、ロボット100の目部のLEDの発光状態を制御することによっても、ロボット100の感情の一部を表現できる。なお、ロボット100の姿勢、仕草及び表情は、ロボット100の態度の一例である。
【0025】
センサ部200は、マイク201と、3D深度センサ202と、2Dカメラ203と、距離センサ204とを含む。マイク201は、音声を連続的に検出して音声データを出力する。なお、マイク201は、ロボット100の頭部に設けられ、バイノーラル録音を行う機能を有してよい。3D深度センサ202は、赤外線パターンを連続的に照射して、赤外線カメラで連続的に撮影された赤外線画像から赤外線パターンを解析することによって
、物体の輪郭を検出する。2Dカメラ203は、イメージセンサの一例である。2Dカメラ203は、可視光によって撮影して、可視光の映像情報を生成する。距離センサは、例えばレーザや超音波等を照射して物体までの距離を検出する。なお、センサ部200は、この他にも、時計、ジャイロセンサ、タッチセンサ、モータフィードバック用のセンサ等を含んでよい。
【0026】
なお、図2に示すロボット100の構成要素のうち、制御対象252及びセンサ部200を除く構成要素は、ロボット100が有する行動制御システムが有する構成要素の一例である。ロボット100の行動制御システムは、制御対象252を制御の対象とする。
【0027】
格納部220は、反応ルール221を含む。格納部220の少なくとも一部は、メモリ等の記憶媒体によって実装される。ユーザ10の顔画像、ユーザ10の属性情報等を格納する人物DBを含んでもよい。なお、図2に示すロボット100の構成要素のうち、制御対象252、センサ部200及び格納部220を除く構成要素の機能は、CPUがプログラムに基づいて動作することによって実現できる。例えば、基本ソフトウエア(OS)及びOS上で動作するプログラムによって、これらの構成要素の機能をCPUの動作として実装できる。
【0028】
センサモジュール部210は、音声感情認識部211と、発話理解部212と、表情認識部213と、顔認識部214とを含む。センサモジュール部210には、センサ部200で検出された情報が入力される。センサモジュール部210は、センサ部200で検出された情報を解析して、解析結果をユーザ状態認識部230に出力する。
【0029】
センサモジュール部210の音声感情認識部211は、マイク201で検出されたユーザ10の音声を解析して、ユーザ10の感情を認識する。例えば、音声感情認識部211は、音声の周波数成分等の特徴量を抽出して、抽出した特徴量に基づいて、ユーザ10の感情を認識する。発話理解部212は、マイク201で検出されたユーザ10の音声を解析して、ユーザ10の発話内容を表す文字情報を出力する。
【0030】
表情認識部213は、2Dカメラ203で撮影されたユーザ10の画像から、ユーザ10の表情及びユーザ10の感情を認識する。例えば、表情認識部213は、目及び口の形状、位置関係等に基づいて、ユーザ10の表情及び感情を認識する。
【0031】
顔認識部214は、ユーザ10の顔を認識する。顔認識部214は、人物DB(図示省略)に格納されている顔画像と、2Dカメラ203によって撮影されたユーザ10の顔画像とをマッチングすることによって、ユーザ10を認識する。
【0032】
ユーザ状態認識部230は、センサモジュール部210で解析された情報に基づいて、ユーザ10の状態を認識する。例えば、センサモジュール部210の解析結果を用いて、主として知覚に関する処理を行う。例えば、「パパが1人です。」、「パパが笑顔でない確率90%です。」等の知覚情報を生成する。生成された知覚情報の意味を理解する処理を行う。例えば、「パパが1人、寂しそうです。」等の意味情報を生成する。
【0033】
行動認識部232は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の行動を認識する。例えば、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態を、予め学習されたニューラルネットワークに入力し、予め定められた複数の行動分類(例えば、「笑う」、「怒る」、「質問する」、「悲しむ」)の各々の確率を取得し、最も確率の高い行動分類を、ユーザ10の行動として認識する。
【0034】
難易度推定部234は、行動認識部232によって認識されたユーザの行動が、「質問する」であると認識された場合、センサモジュール部210で解析された情報のうちの、ユーザ10の発話内容を表す文字情報に基づいて、質問の難易度に応じたスコアを推定する。例えば、ユーザ10の発話内容を表す文字情報を、予め学習されたニューラルネットワークに入力し、質問の難易度に応じたスコアを取得する。なお、このスコアは、質問の難易度が高いほど高い値を示すものとする。
【0035】
行動決定部236は、行動認識部232によって認識されたユーザの行動と、反応ルール221とに基づいて、ロボット100の行動を決定する。このとき、難易度推定部234で推定された難易度に応じたスコアが、閾値以上である場合、実行される行動として、ユーザ10から質問されることを喜ぶ行動、及び質問に対して回答する行動を決定する。ここで、「ユーザから質問されることを喜ぶ行動」とは、例えば、ユーザから質問されて得意げな行動(自慢げな行動)である。
【0036】
行動制御部250は、行動決定部236が決定した行動に基づいて、制御対象252を制御する。例えば、行動制御部250は、行動決定部236が発話することを含む行動を決定した場合に、制御対象252に含まれるスピーカから音声を出力させる。このとき、行動制御部250は、ロボット100の感情値に基づいて、音声の発声速度を決定してもよい。
【0037】
また、行動制御部250は、行動決定部236が「ユーザから質問されることを喜ぶ行動」を決定した場合に、得意げなことを表す音声(例えば、「こういう質問に答えるのは得意なんです」)をスピーカから出力し、得意げなことを表すロボット100の姿勢や仕草(例えば、片手をゆっくり上げる動作)を、腕、手及び足等のモータを駆動して表現する。
【0038】
行動制御部250は、行動決定部236が決定した行動を実行したことに対するユーザ10の感情の変化を認識してもよい。例えば、ユーザ10の音声や表情に基づいて感情の変化を認識してよい。その他、センサ部200に含まれるタッチセンサで衝撃が検出されたことに基づいて、ユーザ10の感情の変化を認識してよい。センサ部200に含まれるタッチセンサで衝撃が検出された場合に、ユーザ10の感情が悪くなったと認識したり、センサ部200に含まれるタッチセンサの検出結果から、ユーザ10の反応が笑っている、あるいは、喜んでいる等と判断される場合には、ユーザ10の感情が良くなったと認識してよい。ユーザ10の反応を示す情報は、通信処理部280に出力される。
【0039】
通信処理部280は、サーバ300との通信を担う。上述したように、通信処理部280は、ユーザ反応情報をサーバ300に送信する。また、通信処理部280は、更新された反応ルールをサーバ300から受信する。通信処理部280がサーバ300から、更新された反応ルールを受信すると、反応ルール221を更新する。
【0040】
サーバ300は、ロボット100、ロボット101及びロボット102とサーバ300との間の通信を行い、ロボット100から送信されたユーザ反応情報を受信し、ポジティブな反応が得られた行動を含む反応ルールに基づいて、反応ルールを更新する。
【0041】
図3は、ロボット100において行動を決定する動作に関する動作フローの一例を概略的に示す。図3に示す動作フローは、繰り返し実行される。このとき、センサモジュール部210で解析された情報が入力されているものとする。なお、動作フロー中の「S」は、実行されるステップを表す。
【0042】
まず、ステップS100において、ユーザ状態認識部230は、センサモジュール部2
10で解析された情報に基づいて、ユーザ10の状態を認識する。
【0043】
ステップS102において、行動認識部232は、センサモジュール部210で解析された情報及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の行動分類を認識する。
【0044】
ステップS104において、上記ステップS102で認識されたユーザ10の行動分類が、「質問する」であるか否かを判定する。上記ステップS102で認識されたユーザ10の行動分類が、「質問する」である場合、ステップS108へ移行する。一方、上記ステップS102で認識されたユーザ10の行動分類が、「質問する」でない場合、ステップS106へ移行する。
【0045】
ステップS106において、行動決定部236は、行動認識部232によって認識されたユーザの行動と、反応ルール221とに基づいて、ロボット100の行動を決定する。
【0046】
ステップS108において、難易度推定部234は、センサモジュール部210で解析された情報のうちの、ユーザ10の発話内容を表す文字情報に基づいて、質問の難易度に応じたスコアを推定する。
【0047】
ステップS110において、上記ステップS108で推定された質問の難易度に応じたスコアが、閾値以上であるか否かを判定する。上記ステップS108で推定された質問の難易度に応じたスコアが、閾値以上である場合には、ステップS112へ移行する。一方、上記ステップS108で推定された質問の難易度に応じたスコアが、閾値未満である場合には、ステップS114へ移行する。
【0048】
ステップS112において、行動決定部236は、実行される行動として、ユーザ10から質問されることを喜ぶ行動、及び質問に対して回答する行動を決定する。
【0049】
ステップS114において、行動決定部236は、反応ルール221に基づいて、実行される行動として、質問に対して回答する行動を決定する。
【0050】
ステップS116において、行動制御部250は、行動決定部236が決定した行動に基づいて、制御対象252を制御する。
【0051】
以上説明したように、ロボット100によれば、ユーザからの質問に対して、適切なタイミングで、自慢げな行動をとることができる。すわなち、質問の難易度が閾値より高いと自慢げな表情、恰好をすることができる。例えば、難しい計算の答えを質問されたときとか、おいしいレストランを質問されたときに、自慢げな表情、恰好をすると共に、質問に回答する。一方、質問の難易度が閾値より低い場合、例えば、「今何時?」とか「今日の天気は?」という、難易度が低い質問をされたときには、自慢げな表情、恰好をせずに、質問に回答する。
【0052】
なお、行動決定部236は、難易度に応じたスコアの累積値が閾値以上である場合、又は難易度に応じたスコアが閾値以上となった回数が、所定回数を超えた場合、実行される行動として、ユーザから質問されることを喜ぶ行動、及び質問に対して回答する行動を決定するようにしてもよい。
【0053】
(第2実施形態)
第2実施形態は、ロボット100が、ユーザから質問された場合において、ロボット100の回答より先にユーザのいずれかが回答した場合に対して、ロボット100がとる応
答行動を特徴としている。以下、第1実施形態との相違点について説明する。なお、同一の構成には同一の符号を付すこととし、詳細な説明については省略する。
【0054】
ロボット100は、ユーザ10と会話を行ったり、ユーザ10に映像を提供したり、ユーザの質問に対して回答するだけでなく、ユーザの回答に対して正誤を示したりリアクションをする等の応答行動をする。
例えば、ロボット100は、ユーザ10aから質問された場合に、ユーザ10bがロボット100より先に回答した場合、その回答に対してロボット100が正誤を示すだけでなく、ユーザ10aやユーザ10bの態度に応じたリアクションを行う。
【0055】
ロボット100は、通信網20を介して通信可能なサーバ300等と連携して、ユーザ10との会話や、ユーザ10への映像等の提供を行う。例えば、ロボット100は、自身で適切な会話を学習するだけでなく、サーバ300と連携して、ユーザ10とより適切に会話を進められるように学習を行う。また、ロボット100は、撮影したユーザ10の映像データ等をサーバ300に記録させ、必要に応じて映像データ等をサーバ300に要求して、ユーザ10に提供する。
【0056】
ロボット100は、行動決定モデルの一例として、ユーザ10の感情、ロボット100の感情、及びユーザ10の行動に基づいてロボット100が実行する行動を定めたルールを記憶しており、ルールに従って各種の行動を行う。
【0057】
具体的には、ロボット100には、ユーザ10の感情、ロボット100の感情、及びユーザ10の行動に基づいてロボット100の行動を決定するための反応ルールを、行動決定モデル223の一例として有している。反応ルールには、例えば、ユーザ10の行動が「笑う」である場合に対して、「笑う」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「怒る」である場合に対して、「謝る」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「質問する」である場合に対して、「回答する」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「回答する」である場合に対して、「正解を示す」という行動が、ロボット100の行動として定められている。反応ルールには、ユーザ10の行動が「悲しむ」である場合に対して、「声をかける」という行動が、ロボット100の行動として定められている。
【0058】
ロボット100は、反応ルールに基づいて、ユーザ10の行動が「怒る」であると認識した場合、反応ルールで定められた「謝る」という行動を、ロボット100が実行する行動として選択する。例えば、ロボット100は、「謝る」という行動を選択した場合に、「謝る」動作を行うと共に、「謝る」言葉を表す音声を出力する。
【0059】
また、ロボット100の感情が「普通」(すわなち、「喜」=0、「怒」=0、「哀」=0、「楽」=0)であり、ユーザ10の状態が「1人、寂しそう」という条件が満たされた場合に、ロボット100の感情が「心配になる」という感情の変化内容と、「声をかける」の行動を実行できることが定められている。
【0060】
ロボット100は、反応ルールに基づいて、ロボット100の現在の感情が「普通」であり、かつ、ユーザ10が1人で寂しそうな状態にあると認識した場合、ロボット100の「哀」の感情値を増大させる。また、ロボット100は、反応ルールで定められた「声をかける」という行動を、ユーザ10に対して実行する行動として選択する。例えば、ロボット100は、「声をかける」という行動を選択した場合に、心配していることを表す「どうしたの?」という言葉を、心配そうな音声に変換して出力する。
【0061】
また、ロボット100は、この行動によって、ユーザ10からポジティブな反応が得られたことを示すユーザ反応情報を、サーバ300に送信する。ユーザ反応情報には、例えば、「怒る」というユーザ行動、「謝る」というロボット100の行動、ユーザ10の反応がポジティブであったこと、及びユーザ10の属性が含まれる。
【0062】
サーバ300は、ロボット100から受信したユーザ反応情報を記憶する。なお、サーバ300は、ロボット100だけでなく、ロボット101及びロボット102のそれぞれからもユーザ反応情報を受信して記憶する。そして、サーバ300は、ロボット100、ロボット101及びロボット102からのユーザ反応情報を解析して、反応ルールを更新する。
【0063】
ロボット100は、更新された反応ルールをサーバ300に問い合わせることにより、更新された反応ルールをサーバ300から受信する。ロボット100は、更新された反応ルールを、ロボット100が記憶している反応ルールに組み込む。これにより、ロボット100は、ロボット101やロボット102等が獲得した反応ルールを、自身の反応ルールに組み込むことができる。
【0064】
また、ロボット100がユーザ10の行動が「質問する」であると認識した場合、ロボット100は文章生成モデルを使用する。さらに、ユーザ10からの質問に対してロボット100よりユーザ10のいずれかが先に回答した場合、ロボット100は、文章生成モデルを使用して、回答に対する正誤を示すことができる。なお、文章生成モデルはロボット100のCPU1212内で処理を実行してよいだけでなく、サーバ300等のロボット100の外部で処理を実行した結果を取得してもよい。
【0065】
ここで、文章生成モデルは、文字による自動対話処理のためのアルゴリズム及び演算と解釈してよい。文章生成モデルは、例えば特開2018-081444号公報やChatGPT(インターネット検索<URL: https://openai.com/blog/chatgpt>)に開示され
る通り公知であるため、その詳細な説明を省略する。このような、文章生成モデルは、大規模言語モデル(LLM:Large Language Model)により構成されている。
【0066】
ロボット100は、上述したようにユーザ10の行動や状態を認識する機能を有する。具体的には、ロボット100は、カメラ機能で取得した映像により、ユーザ10が複数人であるか(図1の例では、ユーザ10a、10b、10c、10d)、また、ユーザ10の表情を解析することによって、ふざけているか真面目であるかの状態を認識する。また、ロボット100は、マイク機能で取得したユーザ10の音声を解析することによって、ユーザ10の発話内容だけでなく、どのユーザが発話しているかを区別できる。なお、カメラ機能を使用して発話者を特定してもよい。また、複数のマイクにより発話方向を解析することで発話者を特定してもよい。またさらに、ロボット100は、ユーザ10の音声を解析することによって、ふざけているか真面目であるかの状態も認識できる。ロボット100は、認識したユーザ10の行動や状態に基づいて、ロボット100が実行する行動を行動決定モデル223の反応ルールに沿って決定する。
【0067】
ロボット100は、ユーザ10の行動や状態に基づいてロボット100が実行する行動を決定するために、行動決定モデル223を使用する。
【0068】
行動決定モデル223は、上述したようにユーザ10の感情、ロボット100の感情、及びユーザ10の行動に基づいてロボット100の行動を決定するための反応ルールを有している。ロボット100は、ユーザ10とロボット100の対話を繰り返した結果得られる、ユーザ10の反応情報及びロボット100の感情値を、サーバ300に送信する。
サーバ300は、ロボット100から受信したユーザ反応情報とロボット感情値を記憶する。サーバ300は、ロボット100だけでなく、ロボット101及びロボット102等からのユーザ反応情報を解析して反応ルールを更新する。つまり、行動決定モデル223はロボット100等のイベント処理により更新される。
【0069】
図4は、ロボット100の第2実施形態の機能構成を概略的に示す。ロボット100は、センサ部200と、センサモジュール部210と、格納部220と、制御部228と、制御対象252と、を有する。制御部228は、状態認識部230と、感情決定部231と、行動認識部232と、取得部235と、行動決定部236と、記憶制御部238と、行動制御部250と、通信処理部280と、を含む。
【0070】
センサ部200は、マイク201と、3D深度センサ202と、2Dカメラ203と、距離センサ204と、タッチセンサ205と、加速度センサ206とを含む。マイク201は、音声を連続的に検出して音声データを出力する。なお、マイク201は、ロボット100の頭部に設けられ、バイノーラル録音を行う機能を有してよい。3D深度センサ202は、赤外線パターンを連続的に照射して、赤外線カメラで連続的に撮影された赤外線画像から赤外線パターンを解析することによって、物体の輪郭を検出する。2Dカメラ203は、イメージセンサの一例である。2Dカメラ203は、可視光によって撮影して、可視光の映像情報を生成する。距離センサは、例えばレーザや超音波等を照射して物体までの距離を検出する。なお、センサ部200は、この他にも、時計、ジャイロセンサ、タッチセンサ、モータフィードバック用のセンサ等を含んでよい。
【0071】
なお、図4に示すロボット100の構成要素のうち、制御対象252及びセンサ部200を除く構成要素は、ロボット100が有する行動制御システムが有する構成要素の一例である。ロボット100の行動制御システムは、制御対象252を制御の対象とする。
【0072】
格納部220は、行動決定モデル223、履歴データ222を含む。履歴データ222は、ユーザ10の行動、ユーザ10の過去の感情値、ユーザの反応情報、ロボット100の過去の感情値、及びロボット100の行動の履歴を含み、具体的には、ユーザ10の感情値、ロボット100の感情値、及びユーザ10の行動を含むイベントデータを複数含む。ユーザ10の行動を含むデータは、ユーザ10の行動を表すカメラ画像を含む。この感情値及び行動の履歴は、例えば、ユーザ10の識別情報に対応付けられることによって、ユーザ10毎に記録される。格納部220の少なくとも一部は、メモリ等の記憶媒体によって実装される。ユーザ10の顔画像、ユーザ10の属性情報等を格納する人物DBを含んでもよい。なお、図2に示すロボット100の構成要素のうち、制御対象252、センサ部200及び格納部220を除く構成要素の機能は、CPUがプログラムに基づいて動作することによって実現できる。例えば、基本ソフトウエア(OS)及びOS上で動作するプログラムによって、これらの構成要素の機能をCPUの動作として実装できる。
【0073】
センサモジュール部210は、音声感情認識部211と、発話理解部212と、表情認識部213と、顔認識部214とを含む。センサモジュール部210には、センサ部200で検出された情報が入力される。センサモジュール部210は、センサ部200で検出された情報を解析して、解析結果を状態認識部230に出力する。
【0074】
センサモジュール部210の音声感情認識部211は、マイク201で検出されたユーザ10の音声を解析して、ユーザ10の状態を認識する。例えば、音声感情認識部211は、音声の周波数成分等の特徴量を抽出して、抽出した特徴量に基づいて、ユーザ10の状態を認識する。発話理解部212は、マイク201で検出されたユーザ10の音声を解析して、ユーザ10の発話内容を表す文字情報を出力する。
【0075】
表情認識部213は、2Dカメラ203で撮影されたユーザ10の画像から、ユーザ10の表情及びユーザ10の感情を認識する。例えば、表情認識部213は、目及び口の形状、位置関係等に基づいて、ユーザ10の表情及び感情を認識する。
【0076】
顔認識部214は、ユーザ10の顔を認識する。顔認識部214は、人物DB(図示省略)に格納されている顔画像と、2Dカメラ203によって撮影されたユーザ10の顔画像とをマッチングすることによって、ユーザ10を認識する。
【0077】
状態認識部230は、センサモジュール部210で解析された情報に基づいて、ユーザ10の状態を認識する。例えば、センサモジュール部210の解析結果を用いて、主として知覚に関する処理を行う。例えば、「パパが1人です。」、「パパが笑顔でない確率90%です。」等の知覚情報を生成する。生成された知覚情報の意味を理解する処理を行う。例えば、「パパが1人、寂しそうです。」等の意味情報を生成する。
【0078】
また、状態認識部230は、センサモジュール部210で解析された情報に基づいて、ユーザ10が複数人であるかも認識する。図1に示したように、ロボット100の周辺にユーザ10a、10b、10c、10dと複数人存在する場合、各ユーザ10の状態を認識可能であり、各ユーザ10の知覚情報を生成できる。
【0079】
感情決定部231は、センサモジュール部210で解析された情報、及び状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の感情を示す感情値を決定する。例えば、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態を、予め学習されたニューラルネットワークに入力し、ユーザ10の感情を示す感情値を取得する。
【0080】
ここで、ユーザ10の感情を示す感情値とは、ユーザの感情の正負を示す値であり、例えば、ユーザの感情が、「喜」、「楽」、「快」、「安心」、「興奮」、「安堵」、及び「充実感」のように、快感や安らぎを伴う明るい感情であれば、正の値を示し、明るい感情であるほど、大きい値となる。ユーザの感情が、「怒」、「哀」、「不快」、「不安」、「悲しみ」、「心配」、及び「虚無感」のように、嫌な気持ちになってしまう感情であれば、負の値を示し、嫌な気持ちであるほど、負の値の絶対値が大きくなる。ユーザの感情が、上記の何れでもない場合(「普通」)、0の値を示す。
【0081】
また、感情決定部231は、センサモジュール部210で解析された情報、センサ部200で検出された情報、及び状態認識部230によって認識されたユーザ10の状態に基づいて、ロボット100の感情を示す感情値を決定する。
【0082】
ロボット100の感情値は、複数の感情分類の各々に対する感情値を含み、例えば、「喜」、「怒」、「哀」、「楽」それぞれの強さを示す値(0~5)である。
【0083】
具体的には、感情決定部231は、センサモジュール部210で解析された情報、及び状態認識部230によって認識されたユーザ10の状態に対応付けて定められた、ロボット100の感情値を更新するルールに従って、ロボット100の感情を示す感情値を決定する。
【0084】
例えば、感情決定部231は、状態認識部230によってユーザ10が寂しそうと認識された場合、ロボット100の「哀」の感情値を増大させる。また、状態認識部230によってユーザ10が笑顔になったと認識された場合、ロボット100の「喜」の感情値を増大させる。
【0085】
なお、感情決定部231は、ロボット100の状態を更に考慮して、ロボット100の感情を示す感情値を決定してもよい。例えば、ロボット100のバッテリー残量が少ない場合やロボット100の周辺環境が真っ暗な場合等に、ロボット100の「哀」の感情値を増大させてもよい。更にバッテリー残量が少ないにも関わらず継続して話しかけてくるユーザ10の場合は、「怒」の感情値を増大させても良い。
【0086】
行動認識部232は、センサモジュール部210で解析された情報、及び状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の行動を認識する。例えば、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態を、予め学習されたニューラルネットワークに入力し、予め定められた複数の行動分類(例えば、「笑う」、「怒る」、「質問する」、「悲しむ」)の各々の確率を取得し、最も確率の高い行動分類を、ユーザ10の行動として認識する。
【0087】
取得部235は、ユーザ10aの行動が、質問であると認識された場合、質問の正しい回答である正回答の行動を取得する。具体的には、文章生成モデルに質問を入力し、その出力として回答内容を取得する。また、取得部235は、正回答がユーザ10aに通知されるよりも先に、ユーザ10のいずれかが提供した回答に対して正誤回答を示す行動を文章生成モデルから取得する。具体的には、文章生成モデルにユーザ10のいずれかから提供された回答を入力し、それに対する正誤回答を取得する。
【0088】
行動決定部236は、感情決定部231により決定されたユーザ10の現在の感情値と、ユーザ10の現在の感情値が決定されるよりも前に感情決定部231により決定された過去の感情値の履歴データ222と、ロボット100の感情値とに基づいて、行動認識部232によって認識されたユーザ10の行動に対応する行動を決定する。本実施形態では、行動決定部236は、ユーザ10の過去の感情値として、履歴データ222に含まれる直近の1つの感情値を用いる場合について説明するが、開示の技術はこの態様に限定されない。例えば、行動決定部236は、ユーザ10の過去の感情値として、直近の複数の感情値を用いてもよいし、一日前などの単位期間の分だけ前の感情値を用いてもよい。また、行動決定部236は、ロボット100の現在の感情値だけでなく、ロボット100の過去の感情値の履歴を更に考慮して、ユーザ10の行動に対応する行動を決定してもよい。また、行動決定部236はロボット100の行動に対するユーザ10のポジティブな反応情報の履歴を更に考慮して、ロボット100の行動を決定してもよい。行動決定部236が決定する行動は、ロボット100が行うジェスチャー又はロボット100の発話内容を含む。
【0089】
行動決定部236は、ロボット100が、ユーザ10aの行動が「質問する」であると認識した場合、ユーザ10のいずれかが、ロボット100よりも先に回答した場合には、その回答の正誤を示す行動を決定する。また、行動決定部は、単に結果を示す行動だけでなく、ジェスチャーで大きく表現することや、ユーザ10の態度やノリに合わせた応答となるようにロボット100の行動を決定する。その際に、過去のユーザ10の反応情報も使用してロボット100の行動を決定してもよい。
【0090】
具体的には、行動決定部236は、取得部235で取得した回答内容を用いて、リアクション等の応答の行動を決定する。
【0091】
図5は、ロボット100の応答行動の発話の例をバリエーションでまとめた図である。
図5に示したように、ユーザ10の回答結果が、ロボット100が準備した回答と一致しているか、不一致であるか、どちらにも該当なしかによって、ロボット100の応答行動の発話内容は異なる。また、ユーザ10の回答結果だけでなく、ユーザの行動(ふざけた行動か真面目な行動か)によっても、ロボット100の応答行動の発話内容は異なる。
【0092】
ここで、ユーザ10の回答とは、発話者(例えばユーザ10a)がロボット100に質問をし、他者(例えばユーザ10b)がロボット100より先に回答した場合のこと、又は発話者(例えばユーザ10a)がロボット100に質問をし、質問した本人(ユーザ10a)がロボット100より先に回答した場合のことである。
【0093】
図5に示した発話内容の例について以下に説明する。
ユーザ10の回答結果がロボット100が準備した回答と一致(図中の「〇」)している場合であって、ユーザ10の行動がふざけた行動(図中の「A」)である場合に、ロボット100は、「たまたまかな!」、「ラッキー!」、「ノリで合ってるなんて」というような、ユーザ10を茶化す発話をする。
【0094】
また、ユーザ10の回答結果がロボット100が準備した回答と一致している場合であって、ユーザ10の行動が真面目な行動(図中の「B」)である場合に、ロボット100は、「さすが、正解!」、「よく知ってるね。より正確には・・・」、「天才!ここまで言えたら完璧だよ」というような、ユーザ10を褒める発話をする。
【0095】
また、ユーザ10の回答結果がロボット100が準備した回答と不一致(図中の「×」)である場合であって、ユーザ10の行動がふざけた行動である場合に、ロボット100は、「なんでですか!」、「違います!」、「それでは、さようなら!」というような、ユーザ10を否定する発話をする。
【0096】
また、ユーザ10の回答結果がロボット100が準備した回答と不一致である場合であって、ユーザ10の行動が真面目な行動である場合に、ロボット100は、「惜しい、角度を変えて考えてみて」、「先入観を外そう!」、「それも一理あるけど、今回は別の答えがいいんだ」というような、ユーザ10に対してアドバイスの発話をする。
【0097】
また、ユーザ10の回答結果がロボット100が準備した回答と一致とも不一致とも判断が不能により該当なし(図中の「?」)の場合であって、ユーザ10の行動がふざけた行動である場合に、ロボット100は、「びみょう~」、「出直してきて」、「全然わかりません」というような、ユーザ10に対して困惑を表現する発話をする。
【0098】
また、ユーザ10の回答結果がロボット100が準備した回答と一致とも不一致とも判断が不能により該当なしの場合であって、ユーザ10の行動が真面目な行動である場合に、ロボット100は、「もう一度考えよう!」、「う~ん、難しいね。シンプルに言うと?」、「なんとも判断がつかないなぁ」というような、ユーザ10に再考を求める発話をする。
【0099】
なお、ロボット100は、回答者(本事例ではユーザ10a又はユーザ10b)が何度も会話をしたことのある親しいユーザである場合と、初めてのユーザである場合で、態度やノリを変えた発話をできる。
【0100】
また、ロボット100の応答行動の発話の内容として、図5に示した内容は例示であって、この内容に限定されない。
【0101】
ここで、ロボット100は、回答者の行動がふざけている行動であるか真面目な行動であるかを、客観的に認識できる。
具体的には、センサ部200のマイク201で検知し音声感情認識部211で認識した音声の特徴量や、センサ部200の2Dカメラ203で撮像し表情認識部213で認識した顔の表情のパターンによって、回答者の状態を識別できる。
【0102】
図6は、ロボット100の応答行動の動きの例をバリエーションでまとめた図である。
図6に示したように、ユーザ10の回答結果が、ロボット100が準備した回答と一致しているか、不一致であるか、どちらにも該当なしかによって、ロボット100の応答行動の発話内容は異なる。また、ユーザ10の回答結果だけでなく、ユーザの行動(ふざけた行動か真面目な行動か)によっても、ロボット100の応答行動の動きは異なる。
【0103】
ここで、ユーザ10の回答とは、発話者(例えばユーザ10a)がロボット100に質問をし、他者(例えばユーザ10b)がロボット100より先に回答した場合のこと、又は発話者(例えばユーザ10a)がロボット100に質問をし、質問した本人(ユーザ10a)がロボット100より先に回答した場合のことである。
【0104】
図6に示した動きの例について以下に説明する。
ユーザ10の回答結果がロボット100が準備した回答と一致(図中の「〇」)している場合であって、ユーザ10の行動がふざけた行動(図中の「A」)である場合に、ロボット100は、「明るいダンスをする」、「鼻歌を歌う」、「BGMを流す」というような、ユーザ10を楽しませる動きをする。
【0105】
また、ユーザ10の回答結果がロボット100が準備した回答と一致している場合であって、ユーザ10の行動が真面目な行動(図中の「B」)である場合に、ロボット100は、「〇のポーズをする」、「頭を撫でる」、「拍手をする」というような、ユーザ10を褒める動きをする。
【0106】
また、ユーザ10の回答結果がロボット100が準備した回答と不一致(図中の「×」)である場合であって、ユーザ10の行動がふざけた行動である場合に、ロボット100は、「ツッコミの手振りをする」、「否定で首を左右に振る」、「さよならで手を左右に振る」というような、ユーザ10を否定する動きをする。
【0107】
また、ユーザ10の回答結果がロボット100が準備した回答と不一致である場合であって、ユーザ10の行動が真面目な行動である場合に、ロボット100は、「×のポーズをする」、「残念の手振りをする」、「ジェスチャーをしながら真剣にヒントを出す」というような、ユーザ10に寄り添う動きする。
【0108】
また、ユーザ10の回答結果がロボット100が準備した回答と一致とも不一致とも判断が不能により該当なし(図中の「?」)の場合であって、ユーザ10の行動がふざけた行動である場合に、ロボット100は、「不思議なポーズをする」、「悩んでいるポーズをする」、「もう一度の手振りをする」というような、ユーザ10に対する困惑を表現する動きをする。
【0109】
また、ユーザ10の回答結果がロボット100が準備した回答と一致とも不一致とも判断が不能により該当なしの場合であって、ユーザ10の行動が真面目な行動である場合に、ロボット100は、「再トライの手振りをする」、「提案の手振りをする」、「わからないポーズをする」というような、ユーザ10に再考を求める動きをする。
【0110】
なお、ロボット100は、回答者(本事例ではユーザ10a又はユーザ10b)が何度も会話をしたことのある親しいユーザである場合と、初めてのユーザである場合で、態度やノリを変えた動きをできる。
【0111】
また、ロボット100の応答行動の動きの内容として、図6に示した内容は例示であって、この内容に限定されない。
【0112】
また、ロボット100は、上記のように、回答者の回答に対して正誤を示すだけでなく、わざと答えを忘れたふりをしておどけてみせることもできる。この場合、ロボット100が答えを忘れたり、とぼけたふりをして、ユーザ10からツッコミを入れられると、ロボット100は照れたような反応を返すことができる。
【0113】
このように、ロボット100はユーザ10と問答を繰り返す場合に人間味のある反応を示すことができる。
【0114】
記憶制御部238は、行動決定部236によって決定された行動に対して予め定められた行動の強度と、ロボット100の感情値とに基づいて、ユーザ10の行動を含むデータを履歴データ222に記憶するか否かを決定する。
【0115】
具体的には、ロボット100の複数の感情分類の各々に対する感情値の総和と、行動決定部236によって決定された行動を含むジェスチャーに対して予め定められた強度と、行動決定部236によって決定された行動が含む発話内容に対して予め定められた強度との和である強度の総合値が、閾値以上である場合、ユーザ10の行動を含むデータを履歴データ222に記憶すると決定する。
【0116】
記憶制御部238は、ユーザ10の行動を含むデータを履歴データ222に記憶すると決定した場合、行動決定部236によって決定された行動と、現時点から一定期間前までの、センサモジュール部210で解析された情報(例えば、その場の音声、画像、匂い等のデータなどのあらゆる周辺情報)、及び状態認識部230によって認識されたユーザ10の状態(例えば、ユーザ10の表情、感情など)を、履歴データ222に記憶する。
【0117】
また、ロボット100の感情値は、ユーザ10の回答の正誤やユーザ10の態度によって更新されるため、ロボット100のイベント処理実行後にも記憶制御部238は実行される。
【0118】
例えば、ユーザ10の回答が正解であった場合には、ロボット100の「喜」の感情値を大きくするように感情決定部231が決定し、その更新された値に基づいて、記憶制御部238はユーザ10の行動を含むデータを履歴データ222に記憶するか否かを決定する。また例えば、ユーザ10の回答が不正解であった場合には、ロボット100の「喜」の感情値を小さくし、「哀」の感情値を大きくするように感情決定部231が決定し、その更新された値に基づいて、記憶制御部238はユーザ10の行動を含むデータを履歴データ222に記憶するか否かを決定する。
【0119】
行動制御部250は、行動決定部236が決定した行動に基づいて、制御対象252を制御する。例えば、行動制御部250は、行動決定部236が発話することを含む行動を決定した場合に、制御対象252に含まれるスピーカから音声を出力させる。このとき、行動制御部250は、ロボット100の感情値に基づいて、音声の発声速度を決定してもよい。例えば、行動制御部250は、ロボット100の感情値が大きいほど、速い発声速度を決定する。このように、行動制御部250は、感情決定部231が決定した感情値に基づいて、行動決定部236が決定した行動の実行形態を決定する。
【0120】
また、行動制御部250は、行動決定部236が決定した行動に基づいてかつロボット100の感情値の大きさに合わせて、身振りの動きの大きさを制御してよい。例えば、ロボット100の「喜」の感情値があらかじめ設定した基準値より大きくなった場合には、踊りの表現として腕を一層大きく動かすように制御する。
【0121】
行動制御部250は、行動決定部236が決定した行動を実行したことに対するユーザ10の感情の変化を認識してもよい。例えば、ユーザ10の音声や表情に基づいて感情の変化を認識してよい。その他、センサ部200に含まれるタッチセンサ205で衝撃が検出されたことに基づいて、ユーザ10の感情の変化を認識してよい。センサ部200に含まれるタッチセンサ205で衝撃が検出された場合に、ユーザ10の感情が悪くなったと認識したり、センサ部200に含まれるタッチセンサ205の検出結果から、ユーザ10の反応が笑っている、あるいは、喜んでいる等と判断される場合には、ユーザ10の感情が良くなったと認識したりしてもよい。ユーザ10の反応を示す情報は、通信処理部280に出力される。
【0122】
また、行動制御部250は、行動決定部236が決定した行動をロボット100の感情に応じて決定した実行形態で実行した後、感情決定部231は、当該行動が実行されたことに対するユーザの反応に基づいて、ロボット100の感情値を更に変化させる。具体的には、感情決定部231は、行動決定部236が決定した行動を行動制御部250が決定した実行形態でユーザに対して行ったことに対するユーザの反応が不良でなかった場合に、ロボット100の「喜」の感情値を増大させる。また、感情決定部231は、行動決定部236が決定した行動を行動制御部250が決定した実行形態でユーザに対して行ったことに対するユーザの反応が不良であった場合に、ロボット100の「哀」の感情値を増大させる。
【0123】
更に、行動制御部250は、決定したロボット100の感情値に基づいて、ロボット100の感情を表現する。例えば、行動制御部250は、ロボット100の「喜」の感情値を増加させた場合、制御対象252を制御して、ロボット100に喜んだ仕草を行わせる。また、行動制御部250は、ロボット100の「哀」の感情値を増加させた場合、ロボット100の姿勢がうなだれた姿勢になるように、制御対象252を制御する。
【0124】
通信処理部280は、サーバ300との通信を担う。上述したように、通信処理部280は、ユーザ反応情報をサーバ300に送信する。また、通信処理部280は、更新された反応ルールをサーバ300から受信する。通信処理部280がサーバ300から、更新された反応ルールを受信すると、行動決定モデル223としての反応ルールを更新する。
【0125】
サーバ300は、ロボット100、ロボット101及びロボット102とサーバ300との間の通信を行い、ロボット100から送信されたユーザ反応情報を受信し、ポジティブな反応が得られた行動を含む反応ルールに基づいて、反応ルールを更新する。
【0126】
以下、本実施形態に係るロボット100の作用について説明する。ロボット100では、図7に示す行動決定処理が実行される。ロボット100における処理は、CPU1212が、状態認識部230と、感情決定部231と、行動認識部232と、取得部235と、行動決定部236と、記憶制御部238と、行動制御部250と、通信処理部280として機能することにより実行される。
【0127】
図7は、ロボット100の行動決定処理を示すフローチャートである。
CPU1212は、図7に示されているフローチャートを繰り返し実行する。
【0128】
まず、ステップS200において、CPU1212は、センサモジュール部210で解析された情報に基づいて、ユーザ10の状態及びロボット100の状態を認識する。
【0129】
ステップS202において、CPU1212は、センサモジュール部210で解析された情報及び状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の行動分類を認識する。
【0130】
ステップS204において、CPU1212は、ユーザ10の行動が「質問する」であるか否かを判定する。ユーザ10の行動が「質問する」であると認識した場合(ステップS204:YES)、ステップS206へ移行する。一方、ユーザ10の行動が「質問する」ではないと認識した場合(ステップS204:NO)、ステップS212へ移行する。
【0131】
ステップS206において、CPU1212は、ユーザ10の質問に対する回答の行動を、文章生成モデルから取得する。
【0132】
ステップS208において、CPU1212は、文章生成モデルから取得した結果(回答の行動内容)と行動決定モデルに基づいて、ロボット100の行動を決定する。なお、ステップS208を2回以上通る場合には、ステップS206で取得した最新の回答を基にして、既に決定されているロボット100の行動を更新する。
【0133】
ステップS210において、CPU1212は、ユーザ10がロボット100より先に回答したか否かを判定する。ユーザ10が先に回答した場合(ステップS210:YES)、ステップS206を再度実行する。一方、ユーザ10が先に回答しなかった場合(ステップS210:NO)、ステップS214へ移行する。
【0134】
ステップS212において、CPU1212は、行動決定モデルに基づいて、ロボット100の行動を決定する。
【0135】
ステップS214において、CPU1212は、決定された行動を制御することでロボット101の行動を実行する。そして、CPU1212は、当該フローチャートの処理を終了する。
【0136】
なお、ロボット100は、行動制御システムを備える電子機器の一例である。行動制御システムの適用対象は、ロボット100に限られず、様々な電子機器に行動制御システムを適用できる。また、サーバ300の機能は、1以上のコンピュータによって実装されてよい。サーバ300の少なくとも一部の機能は、仮想マシンによって実装されてよい。また、サーバ300の機能の少なくとも一部は、クラウドで実装されてよい。
【0137】
図8は、ロボット100及びサーバ300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0138】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッ
ドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0139】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0140】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD-ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0141】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0142】
プログラムは、DVD-ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0143】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0144】
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD-ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0145】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケ
ンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0146】
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0147】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0148】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0149】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0150】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他の
プログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0151】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0152】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0153】
5 システム、10、11、12 ユーザ、20 通信網、100、101、102 ロボット、200 センサ部、201 マイク、202 深度センサ、203 カメラ、204 距離センサ、205 タッチセンサ、206 加速度センサ、210 センサモジュール部、211 音声感情認識部、212 発話理解部、213 表情認識部、214
顔認識部、220 格納部、221 反応ルール、223 行動決定モデル、222 履歴データ、228 制御部、230 ユーザ状態認識部(状態認識部)、231 感情決定部、232 行動認識部、234 難易度推定部、235 取得部、236 行動決定部、238 記憶制御部、250 行動制御部、252 制御対象、280 通信処理部、300 サーバ、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1226 DVDドライブ、1227 DVD-ROM、1230 ROM、1240 入出力チップ
図1
図2
図3
図4
図5
図6
図7
図8