(57)【要約】【課題】サービスロボットのおかれた環境に基づいてサービスロボットの行動を制御する。【解決手段】プロセッサと記憶装置を有して利用者と対話するロボットと、プロセッサと記憶装置を有してロボットを制御する対話サーバを含むロボット対話システムで、ロボットが、利用者の問い合わせから発話内容と確信度を算出して送信し、対話サーバは、ロボットから発話内容と確信度を受け付けて、発話内容に対応する行動と確信度を状態情報に格納し、前記状態情報のうち最も確信度が高い行動を新たな行動として選択し、現在の前記ロボットの状態から新たな行動を実行した場合のコストを算出し、最も確信度が高い行動を除いた候補の組み合わせを、新たな行動の候補として選択し、現在のサービスロボットの状態で新たな行動の候補を実行した場合のコストを算出し、コストが最小となる行動または行動の候補を新たな行動として選択する。【選択図】図１３Ｂ
2019084598.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと記憶装置を有して利用者と対話するロボットと、
プロセッサと記憶装置を有して前記ロボットを制御する対話サーバと、
前記対話サーバと前記ロボットを接続するネットワークと、
を含むロボット対話システムであって、
前記ロボットは、
音声情報によって前記利用者と対話を行う音声情報対話部と、
移動先を受け付けて、当該移動先へロボットを移動させる移動装置と、
前記音声情報対話部が受け付けた発話内容と、発話内容から算出した確信度を前記対話サーバへ送信し、当該発話内容に対する行動を前記対話サーバから受信して、前記音声情報対話部と前記移動装置を制御する制御部と、を有し、
前記対話サーバは、
前記ロボットに実行させる行動を発話内容に応じて予め設定したシナリオ情報と、
前記行動の種類に応じて前記ロボットのコストを予め設定したコスト情報と、
前記ロボットの状態を保持する状態情報と、
前記ロボットから前記発話内容と前記確信度を受け付けて、前記ロボットに実行させる行動を決定して前記ロボットに指令するロボット制御部と、
前記コスト情報と前記状態情報に基づいて前記ロボットの行動のコストを算出するコスト計算部と、を有し、
前記ロボット制御部は、
前記ロボットから受信した発話内容に対応する行動と確信度を前記状態情報に格納し、前記状態情報のうち最も確信度が高い行動を新たな行動として選択し、現在の前記ロボットの状態で新たな行動を実行した場合のコストを前記コスト計算部に算出させ、最も確信度が高い行動を除いた候補の組み合わせを新たな行動の候補として選択し、現在のサービスロボットの状態で新たな行動の候補を実行した場合のコストを前記コスト計算部に算出させ、前記コストが最小となる行動または行動の候補を新たな行動として選択することを特徴とするロボット対話システム。
【請求項２】
請求項１に記載のロボット対話システムであって、
前記コスト計算部は、
前記ロボットの位置と前記行動の目的地の距離に基づいて前記コストを計算することを特徴とするロボット対話システム。
【請求項３】
請求項１に記載のロボット対話システムであって、
前記コスト計算部は、
前記ロボットが前記利用者に対して発言する文章の文言と内容の違いを基準として前記コストを計算することを特徴とするロボット対話システム。
【請求項４】
請求項１に記載のロボット対話システムであって、
前記コスト計算部は、
前記ロボットの個体の違いを基準として前記コストを計算することを特徴とするロボット対話システム。
【請求項５】
請求項１に記載のロボット対話システムであって、
前記ロボット制御部は、
前記ロボットを介した音声対話によって前記利用者から新たな行動の候補を受け付けることを特徴とするロボット対話システム。
【請求項６】
請求項１に記載のロボット対話システムであって、
シナリオ情報を生成するシナリオ生成装置をさらに有し、
前記シナリオ生成装置は、
生成された前記シナリオ情報に対して前記コスト計算部にコストを計算させる指示を自動的に挿入することを特徴とするロボット対話システム。
【請求項７】
プロセッサと記憶装置を有して利用者と対話するロボットと、プロセッサと記憶装置を有して前記ロボットを制御する対話サーバを含むロボット対話システムの制御方法であって、
前記ロボットが、前記利用者の問い合わせから音声認識により発話内容と確信度を算出し、前記対話サーバに送信する第１のステップと、
前記対話サーバが、前記ロボットから発話内容と確信度を受け付けて、発話内容に対応する行動と確信度を、前記ロボットの状態を保持する状態情報に格納する第２のステップと、
前記対話サーバが、前記状態情報のうち最も確信度が高い行動を新たな行動として選択する第３のステップと、
前記対話サーバが、現在の前記ロボットの状態から新たな行動を実行した場合のコストを算出し、最も確信度が高い行動を除いた候補の組み合わせを、新たな行動の候補として選択し、現在のサービスロボットの状態で新たな行動の候補を実行した場合のコストを算出する第４のステップと、
前記対話サーバが、前記コストが最小となる行動または行動の候補を新たな行動として選択する第５のステップと、
を含むことを特徴とするロボット対話システムの制御方法。
【請求項８】
請求項７に記載のロボット対話システムの制御方法であって、
前記第４のステップは、
前記ロボットの位置と前記行動の目的地の距離に基づいて前記コストを計算することを特徴とするロボット対話システムの制御方法。
【請求項９】
請求項７に記載のロボット対話システムの制御方法であって、
前記第４のステップは、
前記ロボットが、前記利用者に対して発言する文章の文言と内容の違いを基準として前記コストを計算することを特徴とするロボット対話システムの制御方法。
【請求項１０】
請求項７に記載のロボット対話システムの制御方法であって、
前記第４のステップは、
前記ロボットの個体の違いを基準として前記コストを計算することを特徴とするロボット対話システムの制御方法。
【請求項１１】
請求項７に記載のロボット対話システムの制御方法であって、
前記第５のステップは、
前記ロボットを介した音声対話によって前記利用者から新たな行動の候補を受け付けることを特徴とするロボット対話システムの制御方法。
【請求項１２】
請求項７に記載のロボット対話システムの制御方法であって、
シナリオ情報を生成するシナリオ生成装置が、生成された前記シナリオ情報に対してコストを計算させる指示を自動的に挿入するステップをさらに含むことを特徴とするロボット対話システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者とコミュニケーションを取りながらサービスを提供するロボットの対話システムに関する。
【背景技術】
【０００２】
近年、人間と同じ空間に存在し、様々なサービスを提供するサービスロボットが広く開発されている。サービスロボットに行わせるサービスを開発する者（以下、サービス開発者）は、サービスロボットのメーカから提供される開発環境やシナリオ生成ツールを用いて開発を行うことが多い。
【０００３】
サービスロボットに詳しいサービス開発者に対しては、より低水準なＡＰＩが提供される。一方で、サービスロボットに詳しくないサービス開発者であっても簡単な言語やＧＵＩでサービスを記述できるシナリオ生成ツールが提供される。サービスロボットの普及にあたり、サービス開発の容易さは重要なファクターである。
【０００４】
一方で、サービスロボットが音声認識の誤り等によりユーザの意図を誤解し、それに基づき行動することにより大きな不便をユーザに強いる可能性がありうる。サービスロボットはサービス開発者の意図に沿った行動を行うと同時に、そのような不便な状況をできるだけ作り出さないように行動しなければならない。
【０００５】
例えば特許文献１では、会話の内容から状況を推定し、その状況を出力する自動対話生成方法が開示されている。
【０００６】
例えば特許文献２では、ユーザやエージェントの状態を推定し、状態に即した応答文を生成する会話文生成方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１７２２８０号公報
【特許文献２】国際公開第２０１４／０７３６１２号
【特許文献３】国際公開第２０１４／０７３６１３号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
サービスロボットに詳しくないサービス開発者が、シナリオ生成ツールを用いてサービス開発を行う場合、サービスロボットがユーザの意図を間違って認識してしまい、ユーザに不便をかけるケースを十分に想定することが難しい。
【０００９】
例えば、ユーザが案内してほしい場所をサービスロボットが聞き間違うことで、間違った場所に案内してしまうことは、ユーザにとって大きな負担である。また、ユーザに負担をかけるケースに気づいたとしても、ユーザの負担を回避するサービスロボットのシナリオをシナリオ生成ツールを用いて実装することは困難である。
【００１０】
前述した特許文献１では、会話の内容から推定した状況を出力する自動対話生成方法が開示されているが、サービスロボットが行う発話の内容とロボットのおかれた環境の状況を照らし合わせて適切な行動をとる方法は提供されていない。
【００１１】
また、特許文献２では、ユーザやエージェントの内部状態を推定して応答文の生成を行っているが、サービスロボットが取得しようとする情報とサービスロボットのおかれた環境の状況に基づいて行動の制御を行うという方法は提供されていない。
【００１２】
そこで本発明は、上記問題点に鑑みてなされたもので、サービスロボットのおかれた環境に基づいてサービスロボットの行動を制御することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、プロセッサと記憶装置を有して利用者と対話するロボットと、プロセッサと記憶装置を有して前記ロボットを制御する対話サーバと、前記対話サーバと前記ロボットを接続するネットワークと、含むロボット対話システムであって、前記ロボットは、音声情報によって前記利用者と対話を行う音声情報対話部と、移動先を受け付けて、当該移動先へロボットを移動させる移動装置と、前記音声情報対話部が受け付けた発話内容と、発話内容から算出した確信度を前記対話サーバへ送信し、当該発話内容に対する行動を前記対話サーバから受信して、前記音声情報対話部と前記移動装置を制御する制御部と、を有し、前記対話サーバは、前記ロボットに実行させる行動を発話内容に応じて予め設定したシナリオ情報と、前記行動の種類に応じて前記ロボットのコストを予め設定したコスト情報と、前記ロボットの状態を保持する状態情報と、前記ロボットから前記発話内容と前記確信度を受け付けて、前記ロボットに実行させる行動を決定して前記ロボットに指令するロボット制御部と、前記コスト情報と前記状態情報に基づいて前記ロボットの行動のコストを算出するコスト計算部と、を有し、前記ロボット制御部は、前記ロボットから受信した発話内容に対応する行動と確信度を前記状態情報に格納し、前記状態情報のうち最も確信度が高い行動を新たな行動として選択し、現在の前記ロボットの状態で新たな行動を実行した場合のコストを前記コスト計算部に算出させ、最も確信度が高い行動を除いた候補の組み合わせを新たな行動の候補として選択し、現在のサービスロボットの状態で新たな行動の候補を実行した場合のコストを前記コスト計算部に算出させ、前記コストが最小となる行動または行動の候補を新たな行動として選択する。
【発明の効果】
【００１４】
本発明によれば、ユーザの意図を誤解した判定に基づいてサービスロボットが行動を起こす前に、当該行動により生じる可能性のあるコストを削減する他の行動を自動的に実施するシナリオを生成する。これにより、サービスロボットのおかれた環境に基づいてサービスロボットの行動を制御することができる。また、サービス開発者が生成したシナリオに基づいてコストを削減可能なシナリオを自動的に生成するので、ユーザにかかる負担を抑制でき、ユーザの不満を抑えるサービスロボットの提供が可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例を示し、移動ロボット対話システムの一例を示す図である。
【図２】本発明の実施例を示し、サービスロボットの構成の一例を示すブロック図である。
【図３】本発明の実施例を示し、サービスロボットのメインプログラムの一例を示すフローチャートである。
【図４】本発明の実施例を示し、サービスロボットの音声認識プログラムの一例を示すフローチャートである。
【図５】本発明の実施例を示し、サービスロボットの音声合成プログラムの一例を示すフローチャートである。
【図６】本発明の実施例を示し、サービスロボットの移動プログラムの一例を示すフローチャートである。
【図７】本発明の実施例を示し、ロボット対話サーバの構成の一例を示すブロック図である。
【図８】本発明の実施例を示し、ロボット制御プログラムの一例を示すフローチャートである。
【図９】本発明の実施例を示し、コスト計算プログラムの一例を示すフローチャートである。
【図１０Ａ】本発明の実施例を示し、状態テーブルの一例を示す図である。
【図１０Ｂ】本発明の実施例を示し、状態テーブルの一例を示す図である。
【図１１】本発明の実施例を示し、シナリオ生成装０の構成の一例を示すブロック図である。
【図１２】本発明の実施例を示し、シナリオ生成装置によって生成されるメインシナリオの一例を示す図である。
【図１３Ａ】本発明の実施例を示し、シナリオ生成装置によって生成されるサブシナリオの一例を示す図である。
【図１３Ｂ】本発明の実施例を示し、シナリオ生成装置によって生成されるサブシナリオの一例を示す図である。
【図１４】本発明の実施例を示し、コストテーブルの一例を示す図である。
【図１５】本発明の実施例を示し、シナリオ生成プログラムの一例を示すフローチャートである。
【図１６】本発明の実施例を示し、シナリオ生成装置が提供するユーザインタフェースの一例を示す図である。
【図１７】本発明の実施例を示し、シナリオの一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を添付図面に基づいて説明する。
【００１７】
図１は本発明の実施例を示し、移動ロボット対話システムの一例を示す図である。
【００１８】
本実施例では、サービスを行う環境として、通路１１ａ、通路１１ｂ、階段１２、トイレ１３ａ、トイレ１３ｂを含む。サービスロボット２０ａと、サービスロボット２０ｂと、ロボット対話サーバ３０が上記環境に配置され、ユーザ（利用者）４０に対して所定のサービスを提供する。
【００１９】
ロボット対話サーバ３０は、開発環境１内に設置されたシナリオ生成装置５０に接続される。シナリオ生成装置５０は、サービス開発者６０によって利用される。サービスロボット２０ａ、２０ｂとロボット対話サーバ３０は無線のＩＰネットワーク１５によって接続され、ロボット対話サーバ３０とシナリオ生成装置５０は有線のＩＰネットワーク（図示省略）によって接続され、データ転送が可能な状態である。
【００２０】
図２はサービスロボット２０の構成の一例を示すブロック図である。なお、サービスロボット２０ａ、２０ｂは同一の構成であるので、以下では符号２０を用いて説明する。
【００２１】
バス２１０は記憶装置２２０と、ＣＰＵ２２１と、ＮＩＦ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｆａｃｅ）２２２と、マイク２２３と、スピーカ２２４と、カメラ２２５と、ＬＩＤＡＲ（Light Detection and Ranging）２２６と、移動装置２２７を相互に接続しデータ信号を中継するもので、汎用のＰＣで用いられる規格（ＰＣＩｅなど）を用いることができる。
【００２２】
記憶装置２２０は後述するプログラムやデータを格納するもので、例えば、ＤＲＡＭやＨＤＤやＳＳＤを用いることができる。
【００２３】
ＣＰＵ２２１はプログラムに従い、記憶装置２２０、ＮＩＦ２２２、マイク２２３、スピーカ２２４、カメラ２２５、ＬＩＤＡＲ２２６、移動装置２２７を制御するもので、汎用のＣＰＵ（例えばＳＨー４プロセッサ）やチップコントローラを用いることができる。
【００２４】
ＮＩＦ２２２は他の装置との通信を行うネットワークインタフェースであり、汎用の拡張ボードを用いることができる。
【００２５】
マイク２２３はサービスロボット２０の周辺の音声を収録するもので、例えば、コンデンサマイクとＡ／Ｄコンバータを用いることができる。スピーカ２２４は電気信号を音声に変換する。
【００２６】
カメラ２２５は、サービスロボット２０の周囲の画像を撮影する装置である。例えば、ＣＣＤとレンズなどを含んで構成される。
【００２７】
ＬＩＤＡＲ２２６は可視光線などの電磁波を放射し、その反射波を計測することで、観測平面上の各方向の障害物（または物体）までの距離を測定する装置である。移動装置２２７は、環境内を移動するための動力と駆動装置を含む。
【００２８】
記憶装置２２０には、サービスロボット２０を制御するメインプログラム２３１と、マイク２２３からの音声をテキストに変換する音声認識プログラム２３２と、テキストデータを音声に変換してスピーカ２２４から出力する音声合成プログラム２３３と、移動装置２２７を制御してサービスロボット２０を移動させる移動プログラム２３４がロードされて、ＣＰＵ２２１によって実行される。
【００２９】
ＣＰＵ２２１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、ＣＰＵ２２１は、音声認識プログラム２３２に従って処理することで音声認識部として機能する。他のプログラムについても同様である。さらに、ＣＰＵ２２１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００３０】
サービスロボット２０の各機能を実現するプログラム、テーブル等の情報は、ストレージサブシステムや不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００３１】
なお、音声認識プログラム２３２と音声合成プログラム２３３を合わせて、音声情報対話部としてもよい。
【００３２】
図３はサービスロボット２０のメインプログラム２３１の一例を示すフローチャートである。なお、以下の説明では、プログラムを処理の主体として説明するが、サービスロボット２０を処理の主体として読み替えてもよい。
【００３３】
メインプログラム２３１は、サービスロボット２０の起動時に実行され、音声認識プログラム２３２と、音声合成プログラム２３３と、移動プログラム２３４をそれぞれ立ちあげた後に、終了する（Ｓ１０１〜Ｓ１０５）。
【００３４】
図４はサービスロボット２０で実行される音声認識プログラム２３２の一例を示すフローチャートである。
【００３５】
音声認識プログラム２３２は、マイク２２３から音声を取得する（Ｓ２０２）。
【００３６】
音声認識プログラム２３２は、取得した音声に対して、音声認識を行う（Ｓ２０３）。音声認識プログラム２３２の音声認識処理については、周知または公知の技術を適用すれば良いので、詳述しない。
【００３７】
音声認識プログラム２３２は、音声認識結果であるテキストと確信度をサービスロボット２０のイベント（音声認識イベント）として、ＮＩＦ２２２経由でロボット対話サーバ３０に送信する（Ｓ２０４）。なお、音声認識の結果の確信度の算出については、周知または公知の技術を適用すれば良いので、本実施例では詳述しない。
【００３８】
音声認識プログラム２３２は、所定の終了条件を満たしていれば処理を終了し（（Ｓ２３０５）Ｓ３０５）、そうでなければステップＳ２０２へ戻って上記処理を繰り返す。なお、所定の終了条件は、例えば、サービスロボット２０の電源遮断あるいはスリープなどである。
【００３９】
上記処理によって、サービスロボット２０がユーザ４０から受け付けた発話をテキストに変換してロボット対話サーバ３０へ送信する。
【００４０】
図５はサービスロボット２０で実行される音声合成プログラム２３３の一例を示すフローチャートである。
【００４１】
音声合成プログラム２３３は、ＮＩＦ２２２経由でロボット対話サーバ３０からテキストを受信する（Ｓ３０２）。
【００４２】
次に音声合成プログラム２３３は、受信したテキストの音声を合成する（Ｓ３０３）。
音声合成プログラム２３３の音声合成処理については、周知または公知の技術を適用すれば良いので、詳述しない。
【００４３】
次に、音声合成プログラム２３３は、合成した音声をスピーカ２２４から出力する（Ｓ３０４）。
【００４４】
音声合成プログラム２３３は、所定の終了条件を満たしていれば処理を終了し、そうでなければステップＳ３０２へ戻って上記処理を繰り返す（Ｓ３０５）。なお、所定の終了条件は、例えば、サービスロボット２０の電源遮断あるいはスリープなどである。
【００４５】
上記処理によって、サービスロボット２０はロボット対話サーバ３０から受け付けたテキストを音声に変換してスピーカ２２４から出力し、ユーザ４０と対話を行う。
【００４６】
図６はサービスロボット２０で実行される移動プログラム２３４の一例を示すフローチャートである。
【００４７】
移動プログラムは２３４、ＮＩＦ２２２経由でロボット対話サーバ３０からテキストを受信し、受信したテキストに記載された目的地を設定する（Ｓ４０２）。ロボット対話サーバ３０から受け付けるテキストには、音声に変換するテキストと、目的地を設定するテキストを識別する情報が付加されても良い。あるいは、ロボット対話サーバ３０から音声変換コマンドや目的地設定コマンドを受け付けて、サービスロボット２０がテキストの変換を識別してもよい。
【００４８】
移動プログラム２３４は、目的地への移動命令を移動装置２２７に送信する。移動プログラム２３４は、移動が完了するまでステップＳ４０３の処理を繰り返す（Ｓ４０３、Ｓ４０４）。
【００４９】
移動プログラム２３４は、移動装置２２７による移動が完了したら、移動完了イベントをＮＩＦ２２２経由でロボット対話サーバ３０に送信する（Ｓ４０５）。
【００５０】
移動プログラム２３４は、所定の終了条件を満たしていれば処理を終了し、そうでなければステップＳ４０２へ戻って上記処理を繰り返す（Ｓ４０６）。なお、所定の終了条件は、例えば、サービスロボット２０の電源遮断あるいはスリープなどである。
【００５１】
上記処理によって、サービスロボット２０はロボット対話サーバ３０から受け付けたテキストを目的地に設定し、移動装置２２７によって指定された目的地まで移動する。
【００５２】
図７はロボット対話サーバ３０の構成の一例を示すブロック図である。
【００５３】
バス３１０は記憶装置３２０と、ＣＰＵ３２１と、ＮＩＦ３２２を相互に接続しデータ信号を中継するもので、汎用のＰＣで用いられる規格（ＰＣＩｅなど）を用いることができる。
【００５４】
記憶装置３２０は後述するプログラムやデータを格納するもので、例えばＤＲＡＭやＨＤＤやＳＳＤを用いることができる。
【００５５】
ＣＰＵ３２１はプログラムに従い、記憶装置３２０、ＮＩＦ３２２を制御するもので、汎用のＣＰＵ（例えばＳＨー４プロセッサ）やチップコントローラを用いることができる。
【００５６】
ＮＩＦ３２２は他の装置との通信を行うネットワークインタフェースであり、汎用の拡張ボードを用いることができる。
【００５７】
記憶装置２２０には、サービスロボット２０を制御するロボット制御プログラム３３１と、サービスロボット２０の行動に関するコストを計算するコスト計算プログラム３３２がロードされて、ＣＰＵ３２１によって実行される。
【００５８】
また、記憶装置２２０には、上記プログラムが使用するデータとして、状態テーブル（状態情報）３４１と、コストテーブル３４２と、シナリオ３４３が格納される。
【００５９】
ＣＰＵ３２１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、ＣＰＵ３２１は、ロボット制御プログラム３３１に従って処理することでロボット制御部として機能する。他のプログラムについても同様である。さらに、ＣＰＵ３２１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００６０】
ロボット対話サーバ３０の各機能を実現するプログラム、テーブル等の情報は、ストレージサブシステムや不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００６１】
図８は、ロボット制御プログラム３３１の一例を示すフローチャートである。なお、以下の説明では、プログラムを処理の主体として説明するが、ロボット対話サーバ３０を処理の主体として読み替えてもよい。
【００６２】
まず、ロボット制御プログラム３３１は、サービスロボット２０からイベント（テキスト）を受け付ける（Ｓ５０２）。
【００６３】
ロボット制御プログラム３３１は、サービスロボット２０の音声認識プログラム２３２が発行した音声認識イベントの場合、サービスロボット２０から受け付けた音声認識の結果（テキスト及び確信度）を状態テーブル３４１に書き込む（Ｓ５０３、Ｓ５０５）。ロボット制御プログラム３３１は、状態テーブル３４１を生成して受信したテキスト（発話内容）を候補値３４１２に格納し、確信度を確信度３４１３に格納する。
【００６４】
ロボット制御プログラム３３１は、サービスロボット２０の移動プログラム２３４が発行した移動終了イベントを受け付けた場合、当該移動結果（移動終了イベント）を状態テーブル３４１に書き込む（Ｓ５０４、Ｓ５０５）。
【００６５】
次に、ロボット制御プログラム３３１は、ステップＳ５０６〜Ｓ５１０のループ（Ｒループ）処理を実行する。
【００６６】
ロボット制御プログラム３３１は、シナリオ３４３を参照して現在位置を開始状態とするすべての状態遷移ルールについて、受信したイベントがマッチするか否かを判定する（Ｓ５０７）。
【００６７】
ロボット制御プログラム３３１は、受信したイベントが状態遷移ルールにマッチした場合、現在状態をその状態遷移ルールの遷移先状態に更新し、その状態に記述されたアクションを実行する（Ｓ５０８）。
【００６８】
ロボット制御プログラム３３１は、アクションがＳＡＹの場合、サービスロボット２０の音声合成プログラム２３３にテキストを送信する。また、ロボット制御プログラム３３１は、アクションの内容がＭＯＶＥＴＯの場合、サービスロボット２０の移動プログラム２３４にテキストを送信する（Ｓ５０９）。また、ロボット制御プログラム３３１は、アクションの内容がコスト計算の場合、後述するコスト計算プログラム３２２を呼び出す。
【００６９】
ロボット制御プログラム３３１は、所定の終了条件を満たしていれば処理を終了し、そうでなければステップＳ５０６へ戻って上記処理を繰り返す（Ｓ５１０）。なお、所定の終了条件は、例えば、ロボット対話サーバ３０の電源遮断あるいはスリープなどである。
【００７０】
上記処理によって、ロボット対話サーバ３０は、サービスロボット２０から受け付けたイベントに基づいてアクションを決定し、アクションの内容を含むテキストをサービスロボット２０に送信し、サービスロボット２０の制御を行う。
【００７１】
図９はコスト計算プログラム３３２の一例を示すフローチャートである。
【００７２】
まず、コスト計算プログラム３３２は、ステップＳ６０２〜Ｓ６０４のループ（Ｘループ）処理を実行し、状態テーブル３４１（図１０Ａ、図１０Ｂ参照）における各項目名３４１１の種類毎に候補値３４１２の組み合わせについて確信度Ｒ（３４１３）および差異コストＣを計算する。
【００７３】
コスト計算プログラム３３２は、状態テーブル３４１の各項目名３４１１について差異コストＣと確信度Ｒの算出が完了するとステップＳ６０５へ進み、そうでなければステップＳ６０２へ戻って上記処理を繰り返す（Ｓ６０４）。
【００７４】
コスト計算プログラム３３２は、音声認識の結果の確信度Ｒを、各項目名３４１１の各候補値３４１２の確信度の積として求める。
【００７５】
例えば、図１０（Ａ）において、確信度Ｒ（目的＝案内、場所＝トイレ）＝０．９５＊０．７＝０．６６５となる。
【００７６】
例えば、図１０（Ｂ）において、確信度Ｒ（目的＝概要、場所＝食事）＝０．７＊０．５＝０．３５となる。
【００７７】
差異コストＣは、各項目名３４１１の候補値３４１２の組み合わせが実施されたときの、状態テーブル３４１の差異コストの期待値Cavgとなる。差異コストの期待値Cavgは、次式にて算出する。次式のＸは各項目名３４１１の候補値３４１２の組み合わせの集合である。
【００７８】
【数１】
2019084598.tif 000003
【００７９】
状態テーブル３４１の差異コストＣは、最大確信度argmaxＲの候補値３４１２の組み合わせが実施されたときの状態テーブル３４１と、当該組み合わせが実施されたときの状態テーブル３４１の差異について、コスト計算プログラム３３２が、コストテーブル３４２に記述されたコストの総和から計算する。
【００８０】
なお、最大確信度argmaxＲは、状態テーブル３４１の確信度３４１３のうち、項目名３４１１毎に最大となる値を示す。
【００８１】
なお、状態テーブル３４１は、サービスロボット２０のセッション（接続）毎にロボット対話サーバ３０が生成し、状態テーブル３４１の差異は、例えば、状態テーブル３４１の前回値と現在値の差分とすることができる。
【００８２】
例えば、図１０（Ａ）において、項目名３４１１毎の最大確信度argmaxＲの候補値３４１２の組み合わせは「目的＝案内、場所＝トイレ」となり、このときの差異コストＣ（目的＝案内、場所＝トイレ）＝０となる。すなわち、図１４のコストテーブル５４１において、場所＝ＰＯＳＩＴＩＯＮが同一で、目的＝ＳＡＹ（発話の内容）が同一であるので、差異はない。
【００８３】
一方、図１０（Ａ）において、目的と場所を図１０（Ｂ）の組み合わせを実施する場合では差異コストＣ（目的＝概要、場所＝食事）＝１００＋１＝１０１となる。図１４のコストテーブル５４１において、場所＝ＰＯＳＩＴＩＯＮが異なるのでコスト５４１２＝１００、目的＝ＳＡＹ（発話の内容）が異なるのでコスト５４１２＝１となる。
【００８４】
例えば図１０（Ｂ）において、最大確信度の候補値３４１２の組み合わせは、「目的＝概要、場所＝食事」であり、このとき差異コストＣ（目的＝概要、場所＝トイレ）＝１となる。図１４のコストテーブル５４１において、場所＝ＰＯＳＩＴＩＯＮが同一で、目的＝ＳＡＹ（発話の内容）のみが異なるのでコスト５４１２＝１となる。
【００８５】
期待値コストCexpは、次式のように、最大確信度argmaxＲ以外のコストの和として算出することができる（Ｓ６０５）。
【００８６】
【数２】
2019084598.tif 000004
【００８７】
コスト計算プログラム３３２は、期待値コストが所定の閾値を上回るかを判断し、その結果を本プログラムの結果として返す（Ｓ６０６）。なお、コスト計算プログラム３３２は、期待値コストCexpと閾値の比較を行わずに、目的と場所の組み合わせについて、現在の状態テーブル３４１との差異コストＣの算出結果をロボット制御プログラム３３１に出力してもよい。
【００８８】
上記処理によって、コスト計算プログラム３３２は、サービスロボット２０の状態を反映する状態テーブル３４１、コストＣと確信度Ｒを算出し、さらに期待値コストCexpを算出する。そして、コスト計算プログラム３３２は、期待値コストCexpが所定の閾値を上回ったか否か（または、目的と場所の組み合わせと、現在の状態テーブル３４１の差異コストＣの算出結果）をロボット制御プログラム３３１に通知する。
【００８９】
なお、コスト計算プログラム３３２は、サービスロボット２０がシナリオ３４３に基づいて、ユーザ４０に発言するときの文章の文言（例：文章の文字列としての距離）や内容の違い（例：文章を意味空間に写像したときの距離など）を基準としてコストを計算してもよい。
【００９０】
なお、文章の文言としては、例えば、編集距離（レーベンシュタイン距離ともいう）に基づく距離を使用することができる。編集距離の計算は、周知または公知の手法で行えば良い。具体的には次のように計算できる。
【００９１】
Ｌ（A,B）＝min（Ｓ（A,B）＋Ｉ（A,B）＋Ｄ（A,B））
ただし、Ｓ（A,B），Ｉ（A,B），Ｄ（A,B）はそれぞれ、ＡをＢに変更する文字置換コスト、文字挿入コスト、文字削除コストである。
【００９２】
また、内容の違いとしては、例えば、文章から抽出される素性（単語や単語列、品詞など）に基づく多次元素性ベクトルを、予め定義した多次元空間にマッピングする。そして、この空間における文書ごとの距離（直線距離など）を用いることができる。
【００９３】
図１０Ａ、図１０Ｂは状態テーブル３４１の一例を示す図である。
【００９４】
状態テーブル３４１は、項目名３４１１、候補値３４１２、確信度３４１３のカラムを含むんで、サービスロボット２０の状態を示す情報を保持する。なお、状態テーブル３４１は、サービスロボット２０ａ、２０ｂのそれぞれについて、セッション毎に生成される。
【００９５】
項目名３４１１に対して、候補値３４１２は、項目名３４１１がとりうる値を示し、確信度３４１３は、項目名３４１１がその候補値３４１２であると確信している度合いを表す数値を示す。
【００９６】
状態テーブル３４１は、サービスロボット２０が把握している自身の状態や、ユーザ４０との対話などにより得られたユーザの状態が、確信度３４１３とともに保存されている。なお、状態テーブル３４１は、上述のように、サービスロボット２０ａ、２０ｂのそれぞれのセッション毎に生成される。
【００９７】
図１１はシナリオ生成装置５０の構成の一例を示すブロック図である。
【００９８】
バス５１０は記憶装置５２０と、ＣＰＵ５２１と、ＮＩＦ５２２と、ディスプレイ５２３と、キーボード５２４と、マウス５２５を相互に接続してデータ信号を中継するもので、汎用のＰＣで用いられる規格（ＰＣＩｅなど）を用いることができる。
【００９９】
記憶装置５２０は、後述するプログラムやデータを格納するもので、例えば、ＤＲＡＭやＨＤＤやＳＳＤを用いることができる。
【０１００】
ＣＰＵ５２１はプログラムに従い、記憶装置５２０、ＮＩＦ５２２を制御するもので、汎用のＣＰＵ（例えばＳＨ−４プロセッサ）やチップコントローラを用いることができる。
【０１０１】
ＮＩＦ５２２は他の装置との通信を行うネットワークインタフェースであり、汎用の拡張ボードを用いることができる。
【０１０２】
ディスプレイ５２３は、フラットパネルディスプレイ等で構成される出力装置である。キーボード５２４、マウス５２５は入力装置である。
【０１０３】
記憶装置５２０には、シナリオ生成プログラム５３１がロードされて、ＣＰＵ５２１によって実行される。また、記憶装置５２０には、シナリオ生成プログラム５３１が利用するコストテーブル５４１と、シナリオ５４２が格納される。なお、コストテーブル５４１と、シナリオ５４２は、ロボット対話サーバ３０のコストテーブル３４２と、シナリオ３４３と同様の構成である。
【０１０４】
図１２はシナリオ生成装置５０により生成されるメインシナリオ５５０の一例を示す図である。なお、図１２のメインシナリオ５５０と、図１３Ａ、図１３Ｂのサブシナリオ５６０は、シナリオ５４２（３４３）に含まれる。
【０１０５】
メインシナリオ５５０は状態遷移図で表現される。状態遷移図は、複数の状態と、状態遷移ルールからなる。状態遷移ルールは移動元状態と移動先状態とルールからなり、移動元状態においてルールに合致するイベントが発生した際に、移動先状態に遷移することを示す。
【０１０６】
図１２のメインシナリオ５５０は、待機ノードＮ１０と、対話ノードＮ１１と、案内開始ノードＮ１２と、案内終了通知ノードＮ１３と、帰還ノードＮ１４の５つのノードから構成された例を示す。対話ノードＮ１１は、一連の処理を設定したサブシナリオ５６０を含むことができる。
【０１０７】
メインシナリオ５５０は、待機ノードＮ１０ではサービスロボット２０がユーザ４０からの問い合わせを待ち受ける。サービスロボット２０は、ユーザ４０からの発話を受け付けて音声認識を実行し、ロボット制御プログラム３３１は、発話の内容に応じて状態の遷移先（遷移先状態）へ遷移する。例えば、音声認識の結果が「トイレへ案内してください」の場合は、ロボット制御プログラム３３１が所定のルール（Ｓ５２）に基づいて、案内開始ノードＮ１２へ遷移して、ユーザ４０をトイレ１３ａに案内するようサービスロボット２０に指令する。
【０１０８】
また、音声認識の結果が「トイレはどこですか？」という問い合わせの場合、ロボット制御プログラム３３１は、所定のルール（Ｓ５１）に基づいて、対話ノードＮ１１へ遷移して、ユーザ４０にトイレ１３ａの場所を音声合成にて案内するようサービスロボット２０に指令する。対話ノードＮ１１での音声認識の結果、ユーザ４０がトイレ１３ａまでの案内を要求した場合、ロボット制御プログラム３３１は、案内開始ノードＮ１２へ遷移して、サービスロボット２０に指令してユーザ４０をトイレ１３ａまで案内させる（Ｓ５４）。
【０１０９】
サービスロボット２０は、目的地への案内が終了するとロボット対話サーバ３０へ案内終了通知を送信し、ロボット制御プログラム３３１は案内終了通知ノードＮ１３に遷移する。ロボット制御プログラム３３１は、所定の時間内にユーザ４０からの問い合わせを受け付けない場合にはタイムアウト（Ｓ５６）して帰還ノードＮ１４へ遷移する。帰還ノードＮ１４では、ロボット制御プログラム３３１がサービスロボット２０を所定の位置に移動させて帰還を終了させ（Ｓ５７）、待機ノードＮ１０に復帰させる。
【０１１０】
なお、対話ノードＮ１１においても、所定の時間内にユーザ４０からの問い合わせを受け付けない場合にはタイムアウト（Ｓ５５）して待機ノードＮ１０へ復帰する。
【０１１１】
図１３Ａ、図１３Ｂは、シナリオ生成装置５０により生成されるサブシナリオ５６０の一例を示す図である。
【０１１２】
サブシナリオ５６０はメインシナリオ５５０のうち対話ノードＮ１１の処理の内容を定義したものである。図１３Ａは、編集されたサブシナリオ５６０の一例を示す。図１３Ｂは、シナリオ生成プログラム５３１によって、対話終了ノードの直前にコスト計算ノードが追加された例を示す。
【０１１３】
図１３Ａは、図１２に示した対話ノードＮ１１の詳細な処理を定義したサブシナリオ５６０で、サービス開発者６０が編集を完了した状態を示している。
【０１１４】
サブシナリオ５６０は、対話の目的が案内か否かを判定する判定ノードＮ１１２と、対話の目的が案内でない場合に目的を尋ねる問い合わせノードＮ１１３と、ユーザ４０が問い合わせた場所が分かったか否かを判定する判定ノードＮ１１４と、場所が分からなかった場合に、ユーザ４０へ場所を問い合わせる問い合わせノードＮ１１５と、対話終了ノードＮ１２０で構成される。
【０１１５】
判定ノードＮ１１２では、ロボット制御プログラム３３１が、音声認識の結果が案内で、かつ、場所に関する音声認識の結果があれば、音声認識の結果に応じた場所とアクションをシナリオ３４３から選択する。目的が不明な場合には、問い合わせノードＮ１１３に進んで、目的を問い合わせるようサービスロボット２０に指令する。
【０１１６】
判定ノードＮ１１４では、音声認識の結果の場所が確定していれば、ロボット制御プログラム３３１は対話終了ノードＮ１２０に進み、音声認識の結果に応じた場所とアクションをサービスロボット２０に実行させる。
【０１１７】
一方、音声認識の結果の場所が確定していなければ、ロボット制御プログラム３３１は問い合わせノードＮ１１５に進んで、場所を問い合わせるようサービスロボット２０に指令する。
【０１１８】
ロボット制御プログラム３３１は、上記サブシナリオ５６０の処理を目的と場所が確定するまで実行することで、音声認識の結果に応じた場所とアクションを確定し、サービスロボット２０に実行させることができる。
【０１１９】
図１３Ｂは、図１３Ａに示したサブシナリオ５６０を、シナリオ生成プログラム５３１の処理によって、コスト計算ノードを自動的に追加した例を示す。シナリオ生成プログラム５３１は、サブシナリオ５６０のノードを順次探索して対話終了ノードＮ１２０を検出する。
【０１２０】
シナリオ生成プログラム５３１は、検出された対話終了ノードＮ１２０の直前にコスト計算ノードＮ１１６を追加し、さらにコスト計算ノードＮ１１６から呼び出される問い合わせノードＮ１１７を追加する。
【０１２１】
コスト計算ノードＮ１１６では、現在のサービスロボット２０の状態と、現在選択可能なアクションを実行した場合のコストが上記図８で示したように計算され、差異コストＣや期待値コストCexpに応じて、問い合わせノードＮ１１７または対話終了ノードＮ１２０のいずれかに一方に進む判定が行われる。
【０１２２】
図１３Ｂのサブシナリオ５６０を実行するロボット制御プログラム３３１は、判定ノードＮ１１４で確定した目的と場所及びアクションについて、現在のサービスロボット２０の状態を示す状態テーブル３４１（図１０Ａ、図１０Ｂ）との差異コストＣ１をコスト計算プログラム３３２で算出させる。
【０１２３】
すなわち、図１３Ｂのサブシナリオ５６０を実行するロボット制御プログラム３３１は、状態テーブル３４１の各項目名３４１１のそれぞれについて、確信度３４１３の最も高い候補値３４１２の組み合わせを新たな行動として選択する。
【０１２４】
例えば、音声認識の結果が図１０Ａの場合、ロボット制御プログラム３３１は、項目名３４１１が「目的」と「場所」のそれぞれについて、候補値３４１２から最も確信度が高い「概要」と「食事」を、新たな行動の組み合わせとして選択し、コスト計算プログラム３３２に現在の状態との差異コストＣ１を算出させる。
【０１２５】
コスト計算プログラム３３２は、さらに、最も確信度が高い候補値３４１２を除いた候補値の組み合わせを、新たな行動の候補として選択し、現在のサービスロボット２０状態との差異コストＣ２を算出する。なお、コスト計算プログラム３３２は、複数の候補値３４１２の組み合わせを行動の候補として複数の差異コストＣ２を算出することができる。
【０１２６】
ロボット制御プログラム３３１は、新たな行動の組み合わせの差異コストＣ１と、新たな行動の候補の組み合わせの差異コストＣ２と比較して、差異コストが小さい方を新たな行動として出力することで、サービスロボット２０のコストを削減できる。
【０１２７】
そして、ロボット制御プログラム３３１は対話終了ノードＮ１２０へ進んでサブシナリオ５６０の処理を終了する。
【０１２８】
ロボット制御プログラム３３１は、差異コストが小さくなる候補がない場合には、問い合わせノードＮ１１７へ進んで、場所または目的等の新たな行動の候補を音声対話によって問い合わせるようサービスロボット２０に指令する。ロボット制御プログラム３３１は、音声対話によってサービスロボット２０の利用者から新たな行動の候補を受け付けることができる。
【０１２９】
そして、ロボット制御プログラム３３１は、上記判定ノードＮ１１２〜コスト計算ノードＮ１１６の処理を繰り返して、コストを削減可能な行動を探索する。
【０１３０】
ただし、ロボット制御プログラム３３１は、問い合わせノードＮ１１７の実行が所定回数（例えば、３回）を超えてループするのを禁止し、現時点で選択されている行動を新たな行動として選択して対話終了ノードＮ１２０に進み、問い合わせノードＮ１１７の実行が過大となるのを抑制する。
【０１３１】
このように、ロボット制御プログラム３３１は、サービスロボット２０から音声認識結果のテキストと確信度を受信すると、状態テーブル３４１を生成し、発話内容に対応する候補値３４１２と確信度を格納し、確信度３４１３の最も高い候補値３４１２の組み合わせを新たな行動として選択する。
【０１３２】
そして、コスト計算プログラム３３２は、現在のサービスロボット２０の状態（場所など）と新たな行動の差異コストＣ１を算出する。また、コスト計算プログラム３３２は、最も確信度が高い候補値３４１２を除いた候補値の組み合わせを、新たな行動の候補として選択し、現在のサービスロボット２０状態との差異コストＣを算出する。ロボット制御プログラム３３１は、差異コストＣ１と差異コストＣ２のうち、差異コストが最小となる行動を新たな行動として選択し、サービスロボット２０に指令することができる。
【０１３３】
なお、コスト計算プログラム３３２は、差異コストＣとしては、サービスロボット２０の現在の位置と、新たな行動の目的地の距離に基づいて差異コストＣを算出することができる。また、コスト計算プログラム３３２は、差異コストＣとしては、サービスロボット２０ａ、２０ｂの個体の違いに基づいて差異コストＣを算出することができる。
【０１３４】
なお、コスト計算ノードＮ１１６において、ロボット制御プログラム３３１は、期待値コストCexpと所定の閾値を比較して、新たな行動を決定するようにしても良い。また、フローチャートと状態遷移図は相互に容易に変換できる。
【０１３５】
図１４はコストテーブル５４１（３４２）の一例を示す図である。
【０１３６】
コストテーブル５４１は、コスト種別５４１１とコスト５４１２のカラムを含む。コスト種別５４１１は、図中「ＰＯＳＩＴＩＯＮ」は、サービスロボット２０の位置の違いを示し、図中「ＳＡＹ」は、サービスロボット２０の発話の違いを示し、図中「ＲＯＢＯＴ」は、異なるサービスロボット２０を示す。
【０１３７】
コスト５４１２は、各コスト種別５４１１を実行した場合のコスト（処理の負荷や処理に要する時間）を示す指標で、予め設定された値である。
【０１３８】
図１５は、シナリオ生成プログラム５３１の一例を示すフローチャートである。この処理は、生成するシナリオ５４２の各サブシナリオの対話終了の直前にコスト計算処理を追加する。
【０１３９】
まず、シナリオ生成プログラム５３１は、サービス開発者６０が操作するキーボード５２４からシナリオ５４２の編集の要求を受け付けたか否かを判定する（Ｓ７０２）。シナリオ生成プログラム５３１は、編集の要求を受け付けた場合は、受け付けた内容に基づきシナリオ５４２の編集処理を行う（Ｓ７０３）。
【０１４０】
具体的には、サービス開発者６０がメインシナリオやサブシナリオに、ノードやアークの追加等の編集処理を行う。
【０１４１】
次に、シナリオ生成プログラム５３１は、シナリオ５４２の保存要求を受け付けたか否かを判定し、受け付けた場合にはステップＳ７０５へ進み、受け付けていなければステップＳ７０２へ戻って上記処理を繰り返す（Ｓ７０４）。
【０１４２】
シナリオ生成プログラム５３１は、シナリオ５４２の保存要求があった場合、現在編集中のメインシナリオに含まれるサブシナリオについて順次処理するループ（Ｓループ）処理（Ｓ７０５〜Ｓ７１０）と、各サブシナリオに含まれるノードについて順次処理するループ（Ｎループ）処理（Ｓ７０６〜Ｓ７０９）を実行する。
【０１４３】
シナリオ生成プログラム５３１は、現在処理中のノードがサブシナリオ内の対話終了ノードであるか否かを判定する。対話終了ノードであればステップＳ７０８へ進み、そうでなければステップＳ７０９へ進んで次のノードの処理を実施する。
【０１４４】
シナリオ生成プログラム５３１は、サブシナリオの対話終了のノード（Ｎ）の直前にコスト計算処理のノードを追加する（Ｓ７０８）。
【０１４５】
シナリオ生成プログラム５３１は、サブシナリオのループ（Ｓループ）処理とサブシナリオ内のノードのループ（Ｎループ）処理が完了すると、ステップＳ７１１で編集したメインシナリオ及びサブシナリオをシナリオ５４２へ格納して処理を終了する。
【０１４６】
上記処理によって編集が完了したサブシナリオ内の対話終了ノードの直前にはコスト計算プログラム３３２でコストの計算を行うことができる。
【０１４７】
図１６は、シナリオ生成装置５０のシナリオ生成プログラム５３１がディスプレイ５２３に表示するユーザインタフェース５２３０の一例を示す図案ある。ユーザインタフェース５２３０はシナリオ生成装置５０のディスプレイ５２３に表示される。
【０１４８】
シナリオ生成プログラム５３１は、ユーザインタフェース５２３０画面の上部にシナリオ（メインシナリオ５１２）を表示し、画面の下部のコストテーブル５４１を表示し、シナリオ及びコストテーブル５４１を編集することができる。
【０１４９】
ユーザインタフェース５２３０の画面の下部には、保存ボタン５２３１が表示され、当該ボタンをクリックすることにより、シナリオ生成プログラム５３１にシナリオの保存要求を指令することができる。
【０１５０】
図１７は、生成されたシナリオ３４３（５４２）の一例を示す図である。シナリオ３４３（５４２）は、図１２で示したようなメインシナリオ５５０に対応するメインシナリオテーブル３４３１と、図１３Ａ及び図１３Ｂで示したようなサブシナリオ５６０に対応するサブシナリオテーブル３４３５を含む。
【０１５１】
メインシナリオテーブル３４３１は、サービスロボット２０の遷移前の位置（ノード）を格納する現在状態３４３２と、サービスロボット２０の遷移先の位置（ノード）を格納する遷移先状態３４３３と、状態を遷移させるルールを格納する状態遷移ルール３４３４を一つのエントリに含む。
【０１５２】
サブシナリオテーブル３４３５は、サービスロボット２０の位置（ノード）を格納する状態３４３６と、サービスロボット２０の処理を格納するアクション３４３７を一つのエントリに含む。
【０１５３】
サービスロボット２０は、シナリオ３４３（５４２）に基づいて図１２のメインシナリオ５５０や図１３Ａ及び図１３Ｂで示したサブシナリオ５６０を実施することが可能となる。
【０１５４】
以上により説明した構成でロボット対話システムを構成すれば、ユーザ４０の意図を誤解した音声認識の結果に基づいてサービスロボット２０が行動を起こす前に、予定される行動により生じる可能性のあるコストを低減する行動を自動的に取得するサブシナリオ５６０を、シナリオ生成プログラム５３１がサービス開発者によって生成されたシナリオに基づき自動的に生成する。そして、ロボット制御プログラム３３１は、コストを低減する行動を取得するサブシナリオ５６０を実行することで、ユーザ４０の不満を低減するロボットサービスの提供が可能となる。
【０１５５】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０１５６】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１５７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１５８】
１０  移動ロボット対話システム
２０ａ、２０ｂ  サービスロボット
３０  ロボット対話サーバ
５０  シナリオ生成装置
２３１  メインプログラム
２３２  音声認識プログラム
２３３  音声合成プログラム
２３４  移動プログラム
３３１  ロボット制御プログラム
３３２  コスト計算プログラム
３４１  状態テーブル
３４２、５４１  コストテーブル
３４３、５４２  シナリオ
５３１  シナリオ生成プログラム
【図１】
2019084598.tif 000005
【図２】
2019084598.tif 000006
【図３】
2019084598.tif 000007
【図４】
2019084598.tif 000008
【図５】
2019084598.tif 000009
【図６】
2019084598.tif 000010
【図７】
2019084598.tif 000011
【図８】
2019084598.tif 000012
【図９】
2019084598.tif 000013
【図１０Ａ】
2019084598.tif 000014
【図１０Ｂ】
2019084598.tif 000015
【図１１】
2019084598.tif 000016
【図１２】
2019084598.tif 000017
【図１３Ａ】
2019084598.tif 000018
【図１３Ｂ】
2019084598.tif 000019
【図１４】
2019084598.tif 000020
【図１５】
2019084598.tif 000021
【図１６】
2019084598.tif 000022
【図１７】
2019084598.tif 000023