(57)【要約】【課題】自律移動するロボットのシナリオの作成工数を低減する。【解決手段】本発明に係るロボットのシナリオ作成システムは、ロボットに動作を指示するオペレーターによる指示が入力される入力部と、入力部に入力された指示に対応するロボットの動作をシナリオとして作成するシナリオ作成部と、を備える。そして、シナリオ作成部は、入力部に入力された指示に基づいて、オペレーターの指示に従って動作、発話、対話動作のうちの少なくとも一つの動作をロボットに行わせるとともに、該動作を、入力部に入力された指示により指定された条件でロボットに実行させることを規定したシナリオを作成する。【選択図】図１０
2020146784.tif 000002
【特許請求の範囲】
【請求項１】
自律移動するロボットの動作を規定するシナリオを作成するシナリオ作成システムにおいて、
前記ロボットに動作を指示するオペレーターによる指示が入力される入力部と、
前記入力部に入力された指示に対応する前記ロボットの動作を前記シナリオとして作成するシナリオ作成部と、を備え、
前記シナリオ作成部は、前記入力部に入力された指示に基づいて、前記オペレーターの指示に従った動作、発話、対話動作のうちの少なくとも一つの動作を前記ロボットに行わせるとともに、該動作を、前記入力部に入力された指示により指定された条件で前記ロボットに実行させることを規定したシナリオを作成することを特徴とする
ロボットのシナリオ作成システム。
【請求項２】
前記シナリオ作成部は、前記入力部に入力された指示の内容、前記指示に対応する前記ロボットの動作の内容、及び、前記動作を実行させる条件の各情報を前記シナリオに記録することを特徴とする
請求項１に記載のロボットのシナリオ作成システム。
【請求項３】
前記シナリオ作成部は、前記動作を実行させる条件として、前記シナリオの作成開始時からの経過時間、及び／又は、前記指示に基づき前記ロボットが動作した時点における前記ロボットの位置情報を前記シナリオに記録する
請求項２に記載のロボットのシナリオ作成システム。
【請求項４】
前記シナリオ作成部は、前記入力部に入力された指示に基づいて、前記オペレーターに前記ロボットを追従して移動させることにより、前記ロボットの動作の基準となる位置、前記ロボットの移動先の位置、前記ロボットの移動経路のうちの少なくとも一つを前記シナリオに記録することを特徴とする
請求項３に記載のロボットのシナリオ作成システム。
【請求項５】
前記シナリオ作成部は、前記入力部に入力された指示に基づいて、前記シナリオを作成するシナリオ作成モードと、前記シナリオに基づいて前記ロボットを動作させるシナリオ実行モードとの切り替えを行う
請求項４に記載のロボットのシナリオ作成システム。
【請求項６】
前記シナリオ作成部は、前記入力部に入力された前記オペレーターの発話内容の音声認識結果、又は、前記オペレーターによって入力されたテキストを、前記ロボットが有する音声合成機能を用いて前記ロボットが発声する言葉として、前記シナリオに記録することを特徴とする
請求項５に記載のロボットのシナリオ作成システム。
【請求項７】
前記オペレーターからの指示は、予め定義された音声コマンドを用いて行われることを特徴とする
請求項１〜６のいずれか一項に記載のロボットのシナリオ作成システム。
【請求項８】
前記シナリオ作成部は、前記音声コマンドの種別、前記音声コマンドによって制御される対象、及び、制御パラメータを、前記シナリオに記録する
請求項７に記載のロボットのシナリオ作成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのシナリオ作成システムに関する。
【背景技術】
【０００２】
近年、ロボットにおける自律移動の機能や音声認識の機能などが向上し、かつ、ロボットのコストの低減が進んでいる。これらの理由により、各種店舗や施設などにおける通行人や来客などの案内対象者に対して音声で案内を行うサービスや、走行、ジェスチャー等の動作によって案内対象者を所定の場所まで案内するサービスなどを提供する用途で、ロボットが使用される機会が増えている。
【０００３】
ロボットに所定の動作を行わせるためには、ロボットの動作を規定するシナリオファイル（以下、単にシナリオとも称する）を作成してロボットの制御部に記憶し、ロボットの制御部が、該シナリオに基づいてロボットの動作や発話、応答などを行うようにする必要がある。
【０００４】
シナリオの作成方法には、オフラインティーチング及びオンラインティーチングがある。オフラインティーチングは、ロボットとは別のシナリオ作成手段を用いて、ロボットの動作を想定しながらオフラインでシナリオを作成する方法である。一方、オンラインティーチングは、ロボット制御装置を介してロボットを直接動作させたり、オペレーターがティーチングペンダント等の操作手段を用いてロボットを動作させたりした上で、シナリオを作成する方法である。
【０００５】
特許文献１には、ロボットに対して動作経路のティーチングを行うティーチング装置であって、ロボットを移動させる際に操作される入力部に対する操作内容を受信する受信部と、ロボットの位置を検出する位置検出部と、入力部に対する操作内容が切替えられたタイミングで、ロボットの位置データを位置検出部に自動的に送信させる制御部と、位置検出部から送信された位置データを記録する記憶部と、を備えたティーチング装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５６２２６２５号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術は、所定の場所及び環境に設置され、一定の動作を繰り返し実行する産業用ロボットに対してオンラインティーチングを行う際に用いられる技術である。ところで、オンラインティーチングを行う対象が、自律移動して案内を行うロボット（以下、案内ロボットと称する）である場合には、以下の課題がある。
【０００８】
案内ロボットは、実際の稼働の前に、導入先に対するデモを実施したり、稼働後においても、イベント等に対応したりする必要がある。そして、デモの実施時やイベントへの対応時などにはその都度シナリオを作成する必要があるため、シナリオ作成の工数が多くなる。
【０００９】
また、オフラインティーチングでシナリオを予め作成しておいた場合であっても、導入現場で案内ロボットの実機を使用して実際に動作させたイメージが、シナリオ作成時の動作イメージとは異なる可能性がある。したがって、このようなイメージの違いを無くすために、シナリオの作成後に、案内ロボットの動作や案内対象者との対話の状況などを確認する必要がある。
【００１０】
さらに、実証実験において現場で案内ロボットの実機を使用してオンラインティーチングを行ったとしても、実際に使用する場合にはシナリオを作り直す必要があった。
【００１１】
本発明は、上記課題を解決するためになされたものであり、本発明の目的は、自律移動するロボットのシナリオの作成工数を低減することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明のロボットのシナリオ作成システムは、ロボットに動作を指示するオペレーターによる指示が入力される入力部と、入力部に入力された指示に対応するロボットの動作をシナリオとして作成するシナリオ作成部と、を備える。シナリオ作成部は、入力部に入力された指示に基づいて、オペレーターの指示に従った動作、発話、対話動作のうちの少なくとも一つの動作をロボットに行わせるとともに、該動作を、入力部に入力された指示により指定された条件でロボットに実行させることを規定したシナリオを作成する。
【発明の効果】
【００１３】
本発明によれば、自律移動するロボットのシナリオの作成工数を低減させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係るロボットのシナリオ作成システムの全体の構成例を示すブロック図である。
【図２】本発明の一実施形態に係るロボットの制御系の構成例を示すブロック図である。
【図３】本発明の一実施形態に係るティーチング装置の制御系の構成例を示すブロック図である。
【図４】本発明の一実施形態に係るロボット制御装置の制御系の構成例を示すブロック図である。
【図５】本発明の一実施形態に係るロボットのシナリオ作成システムで使用されるコンピューター装置のハードウェア構成の例を示すブロック図である。
【図６】本発明の一実施形態に係るロボットのシナリオ作成システムで使用される音声コマンドの構成例を示す図である。
【図７】本発明の一実施形態に係るロボットにおいて各種指示に基づいて行われる各種処理の手順を示すフローチャートである。
【図８】本発明の一実施形態に係るシナリオ記録モード処理の手順を示すフローチャートである。
【図９】本発明の一実施形態に係るシナリオ編集処理の手順を示すフローチャートである。
【図１０】本発明の一実施形態に係るロボットにおいて作成されたシナリオテーブルの構成例を示す図である。
【図１１】変形例に係るロボットにおいて作成されたシナリオテーブルの構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本発明の一実施形態に係るロボットのシナリオ作成システムの一例を、図面を参照しながら説明するが、本発明は下記の例に限定されない。
【００１６】
＜ロボットのシナリオ作成システムの全体構成＞
まず、図１を参照して、本実施形態に係るロボットのシナリオ作成システムの全体の構成について説明する。図１は、ロボットのシナリオ作成システム１の全体の構成例を示すブロック図である。
【００１７】
図１に示すように、ロボットのシナリオ作成システム１は、ロボット１０、ティーチング装置２０及びロボット制御装置３０を備える。ロボット１０とティーチング装置２０との間、及び、ロボット１０とロボット制御装置３０との間は、無線ＬＡＮ（Local Area Network）等の無線通信網により接続される。
【００１８】
ロボット１０は、自律移動可能な案内ロボットであり、導入先の施設内の所定の範囲、例えば、ロボット１０が設置されるフロア内を移動可能である。そして、ロボット１０は、施設内の通行人や来客などの案内対象者に対して、音声で案内を行うサービスや、走行、ジェスチャー等の動作によって案内対象者を所定の場所まで案内するサービスなどを提供する。
【００１９】
ロボット１０には、シナリオ操作モードが設定され、ロボット１０は、シナリオ操作モードに応じた動作を行う。シナリオ操作モードには、シナリオ実行モード及びシナリオ記録モード（シナリオ作成モードの一例）がある。シナリオ実行モードは、ロボット１０をシナリオに基づいて実際に動作させるモードであり、シナリオ記録モードは、オペレーター（ティーチング担当者、ユーザー等）からの指示に基づくロボット１０の動作を、シナリオとして記録（作成、編集、設定（記憶））させるモードである。
【００２０】
ティーチング装置２０は、ロボット１０に動作を指示するオペレーターがロボット１０のティーチング中に操作する装置であり、ティーチングペンダント、プロポ（ラジコンの送信機）等とも称される装置である。ティーチング装置２０は、オペレーターにより入力される操作に基づいて、ロボット１０の動作を制御する指示をロボット１０に送信する。
【００２１】
ロボット制御装置３０は、例えば、施設内の所定の位置に配置され、ロボット１０から受信した音声の音声認識処理や、ロボット１０から受信した画像の画像認識処理などを行う。また、ロボット制御装置３０は、ロボット１０に対して制御信号等を送信することにより、ロボット１０の動作を制御する。なお、ロボット制御装置３０は、例えば、ロボット１０内に設けられてもよく、クラウド上に設けられてもよい。
【００２２】
＜ロボットの構成＞
次に、図２を参照して、ロボット１０の制御系の構成について説明する。図２は、ロボット１０の制御系の構成例を示すブロック図である。
【００２３】
図２に示すように、ロボット１０は、ＣＰＵ（central processing unit）１１０、並びに、ＣＰＵ１１０の制御に基づいて各処理が実行される記憶装置１２０、入出力装置１３０及び通信インターフェース１４０を備える。
【００２４】
記憶装置１２０は、機能構成部として、駆動制御部１２１、対話制御部１２２、入出力部１２３、シナリオ作成部１２４及びシナリオ記憶部１２５を備える。
【００２５】
駆動制御部１２１は、ロボット１０を自律移動させる際の駆動制御を行う。例えば、駆動制御部１２１は、ロボット１０が自律移動する際に、ロボット１０のカメラ１３１が撮影した映像や、測域センサ１３４が光波により検出した自身の位置などに基づいて、ロボット１０の周囲の状況を判断する。そして、駆動制御部１２１は、判断した内容、及び、予め設定された案内対象者との距離に関するデータ等に基づいて、人、壁等の障害物を避けながらロボット１０を自律移動させる。また、駆動制御部１２１は、ジャイロセンサ１３３の検出値に基づいてロボット１０の機体の傾きを検知し、ロボット１０が倒れずに自律移動するための制御を行う。ロボット１０の移動中に、カメラ１３１及び／又は測域センサ１３４から得た情報に基づいて障害物が検知された場合には、駆動制御部１２１は、ロボット１０の移動を停止させるか、障害物を回避するようにロボット１０の動作を制御する。
【００２６】
本実施形態では、ロボット１０が移動できる移動可能範囲は、予め決められた所定の範囲内（例えば、施設内）に制限される。つまり、駆動制御部１２１が判断するロボット１００の現在位置は、その移動可能範囲内での位置に留まる。
【００２７】
対話制御部１２２は、入出力装置１３０が備えるマイクロフォン１３２及びスピーカ１３５を用いて、案内対象者又はオペレーターとの対話動作を、音声を介して行わせる。ロボット１０による対話動作には、例えば、音声認識、対話用データベースの検索、及び、案内対象者への回答等が含まれる。
【００２８】
ロボット１０のシナリオ操作モードがシナリオ実行モードである場合、対話制御部１２２は、案内に必要となる発話等の音声をスピーカ１３５から出力するとともに、案内対象者からの音声による回答をマイクロフォン１３２より取得し、取得した回答を音声認識する。なお、この手法は、案内対象者から回答を得る方法の一例を示したものであり、他の手法によって案内対象者からの回答を得るようにしてもよい。
【００２９】
ロボット１０のシナリオ操作モードがシナリオ記録モードである場合には、対話制御部１２２は、オペレーターが発声した音声コマンドを認識して、認識した音声コマンドをシナリオ作成部１２４に出力する。そして、シナリオ作成部１２４によって、オペレーターによる音声コマンドの内容がシナリオとしてシナリオ記憶部１２５に記憶される。
【００３０】
入出力部１２３は、入出力装置１３０との間で行われる各種データの入出力動作を実行する他、通信インターフェース１４０を介してティーチング装置２０との間で行われる各種データの入出力動作、及び、ロボット制御装置３０との間で行われる各種データの入出力動作を実行する。
【００３１】
シナリオ作成部１２４は、ロボット１０のシナリオ操作モードがシナリオ実行モードである場合、シナリオ記憶部１２５又はロボット制御装置３０に記憶されたシナリオを実行することにより、ロボット１０に施設内の案内を実行させる。シナリオ作成部１２４は、シナリオ実行モードにおいては、実行するシナリオに合わせて、駆動制御部１２１及び／又は対話制御部１２２に指示を行うことにより、ロボット１０に所定の動作を行わせ、ロボット１０による施設内の案内を実行させる。
【００３２】
ロボット１０のシナリオ操作モードがシナリオ記録モードである場合には、シナリオ作成部１２４は、オペレーターによるティーチング装置２０からの指示又は音声コマンドに対応するロボット１０の動作を、シナリオとしてシナリオ記憶部１２５に記憶する。具体的には、オペレーターからの指示に応じた駆動制御部１２１及び／又は対話制御部１２２による制御に基づいて行われたロボット１０の動作を、オペレーターからの指示に従って、シナリオとして記録する。また、シナリオ作成部１２４は、オペレーターによる指示に基づいて、シナリオ記憶部１２５に記憶されたシナリオの編集（追加、削除等）を行う。
【００３３】
シナリオ記憶部１２５には、シナリオ作成部１２４で記録されたシナリオや、ロボット制御装置３０から送信されたシナリオなどが記憶される。シナリオは、例えば、後述の図１０に示すシナリオテーブルの形態でシナリオ記憶部１２５に記憶される。シナリオテーブルについては、図１０を参照して詳述する。
【００３４】
なお、本実施形態では、シナリオ作成部１２４とシナリオ記憶部１２５とを別の機能ブロックで構成する例を挙げたが、本発明はこれに限定されない。シナリオ作成部１２４とシナリオ記憶部１２５とが１つの機能ブロックで構成されていてもよい。
【００３５】
入出力装置１３０は、カメラ１３１、マイクロフォン１３２、ジャイロセンサ１３３、測域センサ１３４、スピーカ１３５、駆動機構１３６及びタイマ１３７を備える。
【００３６】
カメラ１３１は、案内対象者を撮影し、案内対象者の顔等の画像情報を取得する。マイクロフォン１３２（入力部の一例）は、案内対象者やオペレーターから発生された音声に関する情報である音声情報を取得する。カメラ１３１で取得された画像情報、マイクロフォン１３２で取得された音声情報等の各種データは、通信インターフェース１４０を経由してロボット制御装置３０に送信される。
【００３７】
ジャイロセンサ１３３は、ロボット１０に加わる角加速度に基づいてロボット１０の傾き等を検出する。また、ジャイロセンサ１３３は、検出した傾き角を、通信インターフェース１４０を経由してロボット制御装置３０に送信する。
【００３８】
測域センサ１３４は、ロボット１０の位置を特定するとともに、ロボット１０の周囲環境を検知するセンサである。測域センサ１３４は、ロボット１０の位置、及び、障害物等を含む周囲の空間形状を計測する。また、測域センサ１３４は、計測して得たデータを、通信インターフェース１４０を経由してロボット制御装置３０に送信する。
【００３９】
スピーカ１３５は、対話制御部１２２で生成された、ロボット１０が施設内を案内するために必要な対話用の音声を、外部に出力する。
【００４０】
駆動機構１３６は、駆動制御部１２１からの指示に基づいてロボット１０を移動させる機構である。ロボット１０が、例えば、車輪により移動可能な形態である場合には、駆動機構１３６は、ロボット１０に設けられた車輪を駆動させるモータである。ロボット１０が、例えば、二足歩行が可能な人型の形態である場合には、駆動機構１３６は、ロボット１０に設けられた足に相当する部材を駆動するアクチュエータである。
【００４１】
タイマ１３７は、計測開始時（シナリオ作成開始時）からの経過時間を計測する。タイマ１３７は、シナリオ作成部１２４によってシナリオ操作モードがシナリオ記録モードに切り替えられる際に初期化され、シナリオ作成部１２４によるシナリオの作成（記録、編集）開始とともに、計測を開始する。また、タイマ１３７は、シナリオ作成部１２４によるシナリオ記録の一時停止、再開、作成（記録、編集）終了等の動作に合わせて、計測を一時停止、再開、終了する。タイマ１３７による計測時間は、タイムスタンプとして、コマンドとともにシナリオを構成するシナリオテーブル（後述の図１０参照）に記録される。シナリオに記録されるタイムスタンプは、ロボット１０がシナリオに規定された各動作を実行する条件を規定するものである。ロボット１０は、シナリオ実行モードにおいて、シナリオに記載された各動作を、各動作に対応付けられたタイムスタンプによって指定されるタイミングにおいて実行する。
【００４２】
通信インターフェース１４０（入力部の一例）は、ティーチング装置２０の通信インターフェース２４０（後述の図３参照）、及び、ロボット制御装置３０の通信インターフェース３３０（後述の図４参照）と、無線ＬＡＮ等を介して接続される。
【００４３】
通信インターフェース１４０は、ロボット制御装置３０からの指示を受け取る。また、通信インターフェース１４０は、ロボット制御装置３０から受け取った指示を入出力装置１３０に伝える他、入出力装置１３０が収集した各種データやシナリオ作成部１２４が記録したシナリオなどを、ロボット制御装置３０に送信する。さらに、通信インターフェース１４０は、ティーチング装置２０の通信インターフェース２４０から送信された各種コマンド（指示）を受け取り、受け取った各種コマンドを、ロボット１０のシナリオ作成部１２４等に出力する。
【００４４】
また、通信インターフェース１４０は、ティーチング装置２０のジョイスティック２３１が操作された場合には、ティーチング装置２０の駆動制御部２２１からのロボット移動指示を、ティーチング装置２０の通信インターフェース２４０を介して受け取る。そして、受け取ったロボットの移動指示を、ロボット１０の駆動制御部１２１に伝える。つまり、ロボット１０は、ティーチング装置２０のジョイスティック２３１に対する操作よっても移動させることができる。
【００４５】
＜ティーチング装置の構成＞
次に、図３を参照して、ティーチング装置２０の制御系の構成について説明する。図３は、ティーチング装置２０の制御系の構成例を示すブロック図である。
【００４６】
図３に示すように、ティーチング装置２０は、ＣＰＵ２１０、並びに、ＣＰＵ２１０の制御に基づいて各処理が実行される記憶装置２２０、入出力装置２３０及び通信インターフェース２４０を備える。
【００４７】
記憶装置２２０は、機能構成部として、駆動制御部２２１、入出力部２２２及びシナリオ制御部２２３を備える。駆動制御部２２１は、入出力装置２３０よりジョイスティック２３１又はシナリオボタン２３２の操作信号を受け取った場合には、操作信号に応じた指示を、通信インターフェース２４０、及び、ロボット１０の通信インターフェース１４０を介して、ロボット１０の駆動制御部１２１に送信する。
【００４８】
入出力部２２２は、入出力装置２３０から出力される、ジョイスティック２３１の操作状態の信号、シナリオボタン２３２の操作状態の信号を受け取り、受け取った信号を駆動制御部２２１に出力する。
【００４９】
シナリオ制御部２２３は、入出力装置２３０からシナリオボタン２３２が操作された信号（以下、単に、操作信号と称する）を受けとった場合は、シナリオボタン２３２の操作状態に応じたシナリオ操作モードの移行指示を、通信インターフェース２４０、及び、ロボット１０の通信インターフェース１４０を介してシナリオ作成部１２４に送信する。なお、シナリオ操作モードの移行指示は、シナリオ実行モードからシナリオ記録モードに移行させる指示、及び、シナリオ記録モードからシナリオ実行モードに移行させる指示のいずれかである。
【００５０】
入出力装置２３０は、ジョイスティック２３１及びシナリオボタン２３２を備える。ジョイスティック２３１は、レバーによる方向入力を行える入力装置であり、オペレーターにより操作される。オペレーターは、ジョイスティック２３１を操作することにより、ロボット１０に所望の動作をさせることができる。
【００５１】
シナリオボタン２３２は、シナリオ操作モードの移行を指示するためのボタンであり、オペレーターにより操作される。オペレーターは、シナリオボタン２３２を操作することにより、シナリオ実行モードからシナリオ記録モードへの移行指示、又は、シナリオ記録モードからシナリオ実行モードへの移行指示を、ロボット１０に対して行うことができる。
【００５２】
＜ロボット制御装置の内部構成例＞
次に、図４を参照して、ロボット制御装置３０の制御系の構成について説明する。図４は、ロボット制御装置３０の制御系の構成例を示すブロック図である。
【００５３】
ロボット制御装置３０は、ＣＰＵ３１０、並びに、ＣＰＵ３１０の制御に基づいて各処理が実行される記憶装置３２０及び通信インターフェース３３０を備える。
【００５４】
記憶装置３２０は、機能構成部として、入力データ処理部３２１、出力データ処理部３２２、シナリオ作成部３２３、シナリオ編集部３２４及びシナリオ記憶部３２５を備える。
【００５５】
入力データ処理部３２１は、ロボット１０から送信されて通信インターフェース３３０が受信した、画像情報、音声情報等の入力データ、シナリオ等に対して、入力処理を行う。出力データ処理部３２２は、通信インターフェース３３０を介してロボット１０へ送信する各種出力データに対して、出力処理を行う。
【００５６】
シナリオ作成部３２３は、いわゆるオフラインティーチングの機能を有し、シナリオのパーツ（モジュール）を組み合わせて新規にシナリオを作成する。シナリオ編集部３２４は、シナリオ作成部３２３で作成されたシナリオや、ロボット１０のシナリオ記憶部１２５から読み出されてロボット１０から送信されたシナリオなどを編集する。シナリオ記憶部３２５は、シナリオ作成部３２３で作成されたシナリオや、ロボット１０から送信されたシナリオなどを記憶する。
【００５７】
通信インターフェース３３０は、ロボット１０の通信インターフェース１４０と通信を行い、ロボット１０からの入力データ（画像情報、音声情報等）やシナリオなどを受信する。また、通信インターフェース３３０は、シナリオ編集部３２４の指示に応じてシナリオ記憶部３２５から読み出されたシナリオを、ロボット１０のシナリオ記憶部１２５に送信する。
【００５８】
＜ハードウェアの構成＞
次に、図５を参照して、ロボット１０、ティーチング装置２０、ロボット制御装置３０として機能するコンピューター装置のハードウェア構成について説明する。図５は、ロボットのシナリオ作成システム１で使用されるコンピューター装置のハードウェア構成の例を示すブロック図である。
【００５９】
コンピューター装置Ｃは、バスラインＣ８に接続されたＣＰＵ Ｃ１、ＲＯＭ（Read Only Memory） Ｃ２、ＲＡＭ（Random Access Memory） Ｃ３、不揮発性ストレージＣ４、ネットワークＩ／Ｆ Ｃ５、入力装置Ｃ６及び表示装置Ｃ７を備える。
【００６０】
ＣＰＵ Ｃ１は、本実施形態のロボット１０、ティーチング装置２０又はロボット制御装置３０が備える各機能を実現するソフトウェアのプログラムコードをＲＯＭ Ｃ２からＲＡＭ Ｃ３に読み出して実行する。ＲＡＭ Ｃ３には、演算処理の途中に発生した変数やパラメータなども一時的に書き込まれる。
【００６１】
例えば、ロボット１０を構成するコンピューター装置Ｃは、ＣＰＵ Ｃ１がＲＯＭ Ｃ２に記憶されているロボット制御用のプログラムを読み出し、当該プログラムを実行することにより、ロボットの自律移動や対話動作などの制御を行う。また、例えば、ロボット１０を構成するコンピューター装置Ｃは、ＣＰＵ Ｃ１がＲＯＭ Ｃ２に記憶されているシナリオ作成用のプログラムを読み出し、当該プログラムを実行することにより、オペレーターの指示に対応するロボット１０の動作を、シナリオとして記録（作成、編集、設定（記憶））する制御を行う。
【００６２】
また、例えば、ティーチング装置２０を構成するコンピューター装置Ｃは、ＣＰＵ Ｃ１がＲＯＭ Ｃ２に記憶されている操作信号送信用のプログラムを読み出し、当該プログラムを実行することにより、ジョイスティック２３１又はシナリオボタン２３２に対するオペレーターの操作に応じた操作信号を生成する。そして、該操作信号を、通信インターフェース２４０を介してロボット１０に送信する制御を行う。
【００６３】
また、例えば、ロボット制御装置３０を構成するコンピューター装置Ｃは、ＣＰＵ Ｃ１がＲＯＭ Ｃ２に記憶されている入出力処理用のプログラムを読み出し、当該プログラムを実行することにより、ロボット１０に対する各種データの入力処理及び出力処理を、それぞれ、入力データ処理部３２１及び出力データ処理部３２２に行わせる制御を行う。また、例えば、ロボット制御装置３０を構成するコンピューター装置Ｃは、ＣＰＵ Ｃ１がＲＯＭ Ｃ２に記憶されているシナリオ作成用のプログラムを読み出し、当該プログラムを実行することにより、シナリオ作成部３２３にシナリオを作成させたり、シナリオ編集部３２４にシナリオを編集させたりする制御を行う。
【００６４】
不揮発性ストレージＣ４には、例えば、ＨＤＤ（Hard disk drive）、ＳＳＤ（Solid State Drive）、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリなどが用いられる。この不揮発性ストレージＣ４には、ＯＳ（Operating System）、各種のパラメータの他に、コンピューター装置Ｃをロボット１０、ティーチング装置２０又はロボット制御装置３０として機能させるためのプログラムが記憶される。
【００６５】
ネットワークＩ／Ｆ Ｃ５は、例えば、ＮＩＣ（Network Interface Card）等で構成され、無線通信を介して接続される各装置との間で、各種データを送受信する。
【００６６】
例えば、ロボット１０を構成するコンピューター装置ＣのネットワークＩ／Ｆ Ｃ５は、カメラ１３１が取得した画像情報、マイクロフォン１３２が取得した音声情報等を、ロボット制御装置３０に送信する。また、例えば、ロボット１０を構成するコンピューター装置ＣのネットワークＩ／Ｆ Ｃ５は、ティーチング装置２０から送信された各種操作信号を受信する。また、例えば、ロボット１０を構成するコンピューター装置ＣのネットワークＩ／Ｆ Ｃ５は、シナリオ記憶部１２５に記憶されたシナリオをロボット制御装置３０に送信したり、ロボット制御装置３０から送信されるシナリオを受信したりする。
【００６７】
また、例えば、ティーチング装置２０を構成するコンピューター装置ＣのネットワークＩ／Ｆ Ｃ５は、ジョイスティック２３１又はシナリオボタン２３２への操作内容に応じた操作信号を、ロボット１０に送信する。
【００６８】
また、例えば、ロボット制御装置３０を構成するコンピューター装置ＣのネットワークＩ／Ｆ Ｃ５は、ロボット１０からの入力データ（画像情報、音声情報等）やシナリオなどを受信する。また、ロボット制御装置３０を構成するコンピューター装置ＣのネットワークＩ／Ｆ Ｃ５は、シナリオ記憶部３２５に記憶されているシナリオを、ロボット１０に送信する。
【００６９】
入力装置Ｃ６は、例えば、キーやボタンなどで構成され、オペレーターによって入力された操作内容に応じた操作信号を生成して該操作信号をＣＰＵ Ｃ１に供給する。表示装置Ｃ７は、例えば、液晶パネルなどで構成され、文字や画像などを画面に表示する。なお、ロボット１０、ティーチング装置２０又はロボット制御装置３０の構成によっては、入力装置Ｃ６又は表示装置Ｃ７を備えない場合もある。
【００７０】
＜音声コマンドの構成＞
次に、図６を参照して、音声コマンドの構成について説明する。音声コマンドは、ロボット１０にシナリオを記録させたり、ロボット１０の動作を制御したりする目的で、オペレーターがロボット１０に対して発声するコマンドである。
【００７１】
図６は、ロボットのシナリオ作成システム１で使用される音声コマンドの構成例を示す図である。図６に示す表では、コマンド番号（「Ｎｏ．」）毎に、「コマンド」、「対象」及び「アイテム」の各項目が規定される。なお、「コマンド」には、音声コマンドの種別が規定され、「対象」には、音声コマンドによって制御される対象が規定される。「アイテム」には、制御のパラメータ等が規定される。なお、図６中の「備考」欄には、各コマンドの処理内容を示している。
【００７２】
音声コマンドの種別は、シナリオの記録の開始又は終了の指示（Ｎｏ．１〜２）、位置記憶指示（Ｎｏ．３〜４）、シナリオの編集の開始又は終了の指示（Ｎｏ．５〜６）、対話指示（Ｎｏ．７〜８）、移動指示（Ｎｏ．９〜１６）、その他動作制御指示（Ｎｏ．１７〜１９）に大別される。
【００７３】
Ｎｏ．１のコマンド「Record Scenario Start」は、ロボット１０にシナリオの記録を開始させ、シナリオ操作モードをシナリオ実行モードからシナリオ記録モードに切り替えさせる指示である。Ｎｏ．２のコマンド「Record Scenario Finish」は、ロボット１０にシナリオの記録を終了させ、シナリオ操作モードをシナリオ記録モードからシナリオ実行モードに切り替えさせる指示である。
【００７４】
Ｎｏ．３のコマンド「Record Position Home」は、ロボット１０に、動作の基準となる位置（ホームポジション）を記録させる指示であり、Ｎｏ．４のコマンド「Record Position <posname>」は、ロボット１０に、移動先の目的地（<posname>）を記録させる指示である。ロボット１０は、例えば、駆動制御部１２１において自身の位置を把握しており、オペレーターによってＮｏ．３又は４のコマンドによる位置記憶指示があった場合には、その時点での自身の現在位置を記録する。
【００７５】
Ｎｏ．５のコマンド「Modify Scenario Start」は、ロボット１０にシナリオの編集の開始させる指示であり、Ｎｏ．６のコマンド「Modify Scenario Finish」は、ロボット１０にシナリオの編集を終了させる指示である。
【００７６】
Ｎｏ．７のコマンド「Talk <words>」は、ロボット１０に対して、オペレーターが発話した所定の音声（<word>に対応する音声）を発声させるための指示である。ロボット１０に所定の音声を発生させる場合には、まず、「Talk」コマンドに続く音声を対話制御部１２２で音声認識して文字列（言葉）として抽出する。そして、対話制御部１２２が持つ音声合成機能を使用して、当該文字列をロボット１０に発声させる。これにより、オペレーターが発話した内容（所定の音声）を、ロボット１０に発声させることが可能となる。
【００７７】
Ｎｏ．８のコマンド「Dialogue <DBname>」は、予め構築された対話用データベース（不図示）の種類を指示して、該対話データベースを使用した対話をロボット１０に開始させる指示である。
【００７８】
Ｎｏ．９〜Ｎｏ．１６のコマンドによる移動指示では、ロボット１０に対して、移動を指示する。Ｎｏ．９のコマンド「Action Follow me」は、オペレーターに追従してロボット１０を移動させる指示であり、Ｎｏ．１０のコマンド「Action Move Me」は、オペレーターに追従してロボット１０が移動した経路における位置を、所定の間隔（距離間隔又は時間間隔）で記録させる指示である。Ｎｏ．１１のコマンド「Action Go Home」は、予め定められたホームポジションにロボット１０を移動させる指示であり、Ｎｏ．１２のコマンド「Action Go <posname>」は、予め設定された位置（<posname>）までロボット１０を移動させる指示である。
【００７９】
Ｎｏ．１３のコマンド「Action Forward <distance>」は、<distance>で規定された距離（ｃｍ）だけロボット１０を前進させる指示であり、Ｎｏ．１４のコマンド「Action Backward <distance>」は、<distance>で規定された距離（ｃｍ）だけロボット１０を後進させる指示である。Ｎｏ．１５のコマンド「Action TurnRight <degree>」は、<degree>で規定された角度だけロボット１０を右周りの方向に回転させる指示である。Ｎｏ．１６のコマンド「Action TurnLeft <degree>」は、<degree>で規定された角度だけロボット１０を左周りの方向に回転させる指示である。
【００８０】
Ｎｏ．１７のコマンド「Cancel」は、ロボット１０に行わせていた直前の動作指示を取り消す指示である。Ｎｏ．１８のコマンド「Stop」は、ロボット１０にシナリオの記録を一時停止させる指示であり、Ｎｏ．１９のコマンド「Restart」は、ロボット１０にシナリオの記録を再開させる指示である。
【００８１】
なお、本実施形態では、シナリオ作成時のコマンドを音声で入力する例を挙げたが、本発明はこれに限定されない。コマンドは、例えば、音声ではなく、ティーチング装置２０のジョイスティック２３１及び／又はシナリオボタン２３２に対する操作等によって指示されてもよい。例えば、ティーチング装置２０のジョイスティック２３１及び／又はシナリオボタン２３２に対する操作によって、Ｎｏ．１〜Ｎｏ．１９のコマンドの中から所定のコマンドを選択し、該所定のコマンドをティーチング装置２０からロボット１０に送信して指示してもよい。また、この場合、例えば、Ｎｏ．４のコマンドのアイテム「<posname>」や、Ｎｏ．７のコマンドの対象「<words>」などのパラメータは、テキスト入力等によって指定されてもよい。
【００８２】
＜各種指示に基づいて行われるロボットによる処理＞
次に、図７を参照して、音声コマンドを用いて行われるオペレーターからの各種指示（各種コマンド：以下、指示割り込みとも称する）に基づいて行われるロボット１０での各種処理について説明する。図７は、ロボット１０において各種指示に基づいて行われる各種処理の手順を示すフローチャートである。
【００８３】
なお、各種指示（指示割り込み）が音声コマンドではなく、上述したティーチング装置２０への操作により行われる場合には、ティーチング装置２０から送信された指示に基づいて、図７に示す各種処理が行われる。
【００８４】
まず、ロボット１０のシナリオ作成部１２４（図２参照）は、指示割り込みが発生したか否かを判定する（ステップＳ１）。ロボット１０の対話制御部１２２がオペレーターによる発話音声を認識した場合には、指示割り込み有りと判定され、ステップＳ１はＹＥＳ判定となる。
【００８５】
ステップＳ１で、指示割り込みが発生したと判定された場合（ステップＳ１がＹＥＳ判定の場合）、シナリオ作成部１２４は、所定の指示割り込み処理を実行する（ステップＳ２）。ステップＳ２の処理後、シナリオ作成部１２４は、処理をステップＳ３に移す。
【００８６】
一方、ステップＳ１で、指示割り込みは発生しなかったと判定された場合（ステップＳ１がＮＯ判定の場合）、又は、ステップＳ２の処理後、シナリオ作成部１２４は、シナリオ操作モードがシナリオ実行モードであるか否かを判定する（ステップＳ３）。なお、ロボット１０の起動時には、通常、シナリオ操作モードはシナリオ実行モードに設定されている。
【００８７】
ステップＳ３で、シナリオ操作モードはシナリオ実行モードではないと判定された場合（ステップＳ３がＮＯ判定の場合）、シナリオ作成部１２４は、シナリオ記録モード処理を行う（ステップＳ４）。シナリオ記録モード処理については、後述の図８を参照して詳述する。シナリオ記録モード処理の終了後、シナリオ作成部１２４は、処理をステップＳ１に戻す。
【００８８】
一方、ステップＳ３で、シナリオ操作モードはシナリオ実行モードであると判定された場合（ステップＳ３がＹＥＳ判定の場合）、シナリオ作成部１２４は、編集開始指示が行われたか否かを判定する（ステップＳ５）。編集開始指示は、上述したＮｏ．５のコマンド（図６参照）である。ステップＳ５で、編集開始指示はあったと判定された場合（ステップＳ５がＹＥＳ判定の場合）、シナリオ作成部１２４は、シナリオ編集処理を行う（ステップＳ６）。シナリオ作成部１２４によるシナリオ編集処理については、後述の図９を参照して詳述する。シナリオ編集処理の終了後、シナリオ作成部１２４は、処理をステップＳ１に戻す。
【００８９】
一方、ステップＳ５で、編集開始指示はなかったと判定された場合（ステップＳ５がＮＯ判定の場合）、シナリオ作成部１２４は、シナリオ記憶部１２５からシナリオを読み出す（ステップＳ７）。次いで、シナリオ作成部１２４は、読み出したシナリオに基づくシナリオ動作（移動、発声、対話等）を、ロボット１０に実行させる制御を行う（ステップＳ８）。そして、ステップＳ８の処理後、シナリオ作成部１２４は処理をステップＳ１に戻し、上述した各種処理を繰り返す。
【００９０】
＜シナリオ記録モード処理＞
次に、図８を参照して、図７のステップＳ４で行われるシナリオ記録モード処理について説明する。図８は、シナリオ記録モード処理の手順を示すフローチャートである。
【００９１】
まず、シナリオ作成部１２４は、指示割り込みが発生したか否かを判定する（ステップＳ１１）。ステップＳ１１で、指示割り込みは発生していないと判定された場合（ステップＳ１１がＮＯ判定の場合）、シナリオ作成部１２４は、ステップＳ１１の判定を繰り返す。一方、ステップＳ１１で、指示割り込みが発生したと判定された場合（ステップＳ１１がＹＥＳ判定の場合）、シナリオ作成部１２４は、発生した指示割り込みはシナリオの記録を開始させる指示（コマンド「Record Scenario Start」）であるか否かを判定する（ステップＳ１２）。
【００９２】
ステップＳ１２で、発生した指示割り込みは、シナリオの記録開始を指示する割り込みであると判定された場合（ステップＳ１２がＹＥＳ判定の場合）、シナリオ作成部１２４は、シナリオ操作モードをシナリオ記録モードに移行させる（ステップＳ１３）。次いで、シナリオ作成部１２４は、タイマ１３７を初期化する（ステップＳ１４）。次いで、シナリオ作成部１２４は、シナリオの記録を開始する（ステップＳ１５）。シナリオの記録開始時には、シナリオ作成部１２４は、タイマ１３７によるカウントも開始させるとともに、当該開始時間（タイマ１３７のカウント値）をタイムスタンプとしてシナリオに記録する。ステップＳ１５の処理後、シナリオ作成部１２４は、シナリオ記録モード処理を終了する。
【００９３】
一方、ステップＳ１２で、発生した指示割り込みは、シナリオの記録開始を指示する割り込みではないと判定された場合（ステップＳ１２がＮＯ判定の場合）、シナリオ作成部１２４は、発生した指示割り込みはシナリオの記録を終了させる指示（コマンド「Record Scenario Finish」）であるか否かを判定する（ステップＳ１６）。
【００９４】
ステップＳ１６で、発生した指示割り込みは、シナリオの記録終了を指示する割り込みであると判定された場合（ステップＳ１６がＹＥＳ判定の場合）、シナリオ作成部１２４は、シナリオ操作モードをシナリオ実行モードに移行させる（ステップＳ１７）。次いで、シナリオ作成部１２４は、シナリオの記録を終了する（ステップＳ１８）。シナリオの記録終了時には、シナリオ作成部１２４は、タイマ１３７の計測も停止させるとともに、当該終了時間（タイマ１３７のカウント値）をタイムスタンプとしてシナリオに記録する。ステップＳ１８の処理後、シナリオ作成部１２４は、シナリオ記録モード処理を終了する。
【００９５】
一方、ステップＳ１６で、発生した指示割り込みは、シナリオの記録終了を指示する割り込みではないと判定された場合（ステップＳ１６がＮＯ判定の場合）、シナリオ作成部１２４は、発生した指示割り込みは、シナリオの記録を中断させる指示（コマンド「Stop」）であるか否かを判定する（ステップＳ１９）。
【００９６】
ステップＳ１９で、発生した指示割り込みは、シナリオの記録の中断を指示する割り込みであると判定された場合（ステップＳ１９がＹＥＳ判定の場合）、シナリオ作成部１２４は、シナリオの記録及びタイマ１３７の計測を一時停止させる（ステップＳ２０）。ステップＳ２０の処理後、シナリオ作成部１２４は、シナリオ記録モード処理を終了する。
【００９７】
一方、ステップＳ１９で、発生した指示割り込みは、シナリオの記録の中断を指示する割り込みではないと判定された場合（ステップＳ１９がＮＯ判定の場合）、シナリオ作成部１２４は、発生した指示割り込みは、シナリオの記録を再開させる指示（コマンド「Restart」）であるか否かを判定する（ステップＳ２１）。
【００９８】
ステップＳ２１で、発生した指示割り込みは、シナリオの記録の再開を指示する割り込みであると判定された場合（ステップＳ２１がＹＥＳ判定の場合）、シナリオ作成部１２４は、シナリオの記録及びタイマ１３７の計測を再開させる（ステップＳ２２）。ステップＳ２２の処理後、シナリオ作成部１２４は、シナリオ記録モード処理を終了する。
【００９９】
一方、ステップＳ２１で、発生した指示割り込みは、シナリオの記録の再開を指示する割り込みではないと判定された場合（ステップＳ２１がＮＯ判定の場合）、シナリオ作成部１２４は、発生した指示割り込みは、その他のシナリオ指示であるか否かを判定する（ステップＳ２３）。その他のシナリオ指示には、例えば、図６に示した音声コマンドにおけるＮｏ．５、Ｎｏ．７〜Ｎｏ．１６のコマンドによる指示等がある。
【０１００】
ステップＳ２３で、発生した指示割り込みは、その他のシナリオ指示を行う割り込みであると判定された場合（ステップＳ２３がＹＥＳ判定の場合）、シナリオ作成部１２４は、その他のシナリオ指示に基づくロボット１０の動作をシナリオとして記録し、タイマ１３７のカウントをタイムスタンプとしてシナリオに記録する（ステップＳ２４）。ステップＳ２４の処理後、シナリオ作成部１２４は、シナリオ記録モード処理を終了する。
【０１０１】
一方、ステップＳ２３で、発生した指示割り込みは、その他のシナリオ指示を行う割り込みでないと判定された場合（ステップＳ２３がＮＯ判定の場合）、シナリオ作成部１２４は、発生した指示割り込みは、シナリオ編集の終了指示（コマンド「Modify Scenario Finish」）であるか否かを判定する（ステップＳ２５）。ステップＳ２５で、発生した割り込みは、シナリオ編集の終了指示であると判定された場合（ステップＳ２５がＹＥＳ判定の場合）、シナリオ作成部１２４は、シナリオ編集及びタイマ１３７のカウントの編集を終了する（ステップＳ２６）。ステップＳ２６の処理後、シナリオ作成部１２４は、シナリオ記録モード処理を終了する。
【０１０２】
一方、ステップＳ２６で、発生した割り込みは、シナリオ編集の終了指示でないと判定された場合（ステップＳ２６がＮＯ判定の場合）、シナリオ作成部１２４はシナリオ記録モード処理を終了する。
【０１０３】
＜シナリオ編集処理＞
次に、図９を参照して、図７のステップＳ６で行われるシナリオ編集処理について説明する。図９は、シナリオ編集処理の手順を示すフローチャートである。
【０１０４】
まず、ロボット１０のシナリオ作成部１２４は、編集指示を受け付けたか否かを判定する（ステップＳ３１）。ステップＳ３１で、編集指示は受け付けていないと判定された場合（ステップＳ３１がＮＯ判定の場合）、シナリオ作成部１２４は、ステップＳ３１の判定を繰り返す。
【０１０５】
一方、ステップＳ３１で、編集指示を受け付けたと判定された場合（ステップＳ３１がＹＥＳ判定の場合）、シナリオ作成部１２４は、編集指示は「削除」であるか否かを判定する（ステップＳ３２）。この処理では、編集指示として、Ｎｏ．１７のコマンド「Cancel」（図６参照）を受け付けたか否かを判定する。ステップＳ３２で、編集指示は「削除」であると判定された場合（ステップＳ３２がＹＥＳ判定の場合）、シナリオ作成部１２４は、直前の動作指示をシナリオから削除する（ステップＳ３３）。
【０１０６】
次いで、シナリオ作成部１２４は、さらに編集する指示を受け付けたか否かを判定する（ステップＳ３４）。ステップＳ３４で、さらに編集する指示は受け付けていないと判定された場合（ステップＳ３４がＮＯ判定の場合）、シナリオ作成部１２４は、モジュールの削除に合わせて、実行中のシナリオに記録済みのタイムスタンプを修正する（ステップＳ３５）。そして、ステップＳ３５の処理後、シナリオ作成部１２４は、シナリオ編集処理を終了する。
【０１０７】
一方、ステップＳ３４で、さらに編集する指示を受け付けたと判定された場合（ステップＳ３４がＹＥＳ判定の場合）、又は、ステップＳ３２がＮＯ判定の場合、すなわち、シナリオの追加又は修正を行うと判定された場合、シナリオ作成部１２４は、編集モジュール（追加モジュール又は修正モジュール）の選択を受け付けたか否かを判定する（ステップＳ３６）。ステップＳ３６で、編集モジュールの選択は受け付けていないと判定された場合（ステップＳ３６がＮＯ判定の場合）、シナリオ作成部１２４は、ステップＳ３６の判定を繰り返す。
【０１０８】
一方、ステップＳ３６で、編集モジュールの選択を受け付けたと判定された場合（ステップＳ３６がＹＥＳ判定の場合）、シナリオ作成部１２４は、選択された編集モジュールを用いてシナリオを編集（追加又は修正）する（ステップＳ３７）。次いで、シナリオ作成部１２４は、モジュールの編集内容に合わせて、実行中のシナリオに記録済みのタイムスタンプを修正する（ステップＳ３８）。ステップＳ３８の処理後、シナリオ作成部１２４は、シナリオ編集処理を終了する。
【０１０９】
本実施形態では、シナリオの編集は、上述のように、シナリオ実行モードにおけるロボット１０の所定の動作に対して、シナリオを編集したいタイミングで、オペレーターが「Modify Scenario Start」の音声コマンドを発声することにより、実行される。この音声コマンドに応じて、現在動作中のシナリオの時刻より、ロボット１０のシナリオ操作モードがシナリオ記録モードに切り替わる。そして、オペレーターが「Cancel」の音声コマンドを発声した場合には、直前の動作指示が取り消され、その後、新たな動作を登録することができる。そして、最後にオペレーターが「Modify Scenario Finish」の音声コマンドを発声することにより、シナリオの編集を終了させることができる。
【０１１０】
＜シナリオテーブルの構成＞
次に、図１０を参照して、オペレーターが音声コマンドを用いてロボット１０にシナリオを記録させた場合のロボット１０の動作と、その動作に基づいて作成されたシナリオテーブルとの対応について説明する。なお、シナリオテーブルの構成例は、図１０に示す例に限定されない。
【０１１１】
図１０は、ロボット１０において作成されたシナリオテーブルの構成例を示す図である。図１０に示すシナリオテーブルは、動作指示（「Ｎｏ．」）毎に、タイムスタンプ（「TimeStamp」）、コマンド種別（「コマンド」）、制御対象（「対象」）、及び、制御パラメータ（「アイテム」）が規定される。なお、図１０中の「注釈」欄には、動作指示の内容が示されている。
【０１１２】
まず、シナリオ操作モードがシナリオ実行モードに設定されたロボット１０に対して、オペレーターが、「Record Scenario Srart」と発声する。この発声により、ロボット１０のシナリオ操作モードは、シナリオ実行モードからシナリオ記録モードに切り替わる。
【０１１３】
そして、ロボット１０のシナリオ作成部１２４は、上記発声に応じて、シナリオテーブルのＮｏ．１の行の「TimeStamp」の項目に、初期化されたタイマ１３７のタイムスタンプ（「00:00:00」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．１の行の「コマンド」、「対象」、「アイテム」の項目に、それぞれ、「Record」、「Scenario」、「Start」を記録する。
【０１１４】
次いで、オペレーターは、現在のロボット１０の位置を基準位置（ホームポジション）として記録させるために、「Record Position Home」の音声コマンドを発声する。シナリオ作成部１２４は、この音声コマンドに応じて、駆動制御部１２１からロボット１０の現在位置に関する情報を読み出し、読み出した現在位置をホームポジションに設定する。次いで、シナリオ作成部１２４は、シナリオテーブルのＮｏ．２の行の「TimeStamp」の項目に、その時点のタイマ１３７のタイムスタンプ（「00:00:05」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．２の行の「コマンド」、「対象」、「アイテム」の項目に、それぞれ、「Record」、「Position」、「Home」を記録するとともに、ロボット１０の現在位置（基準位置）に関する情報を記録する。
【０１１５】
次いで、オペレーターは、ロボット１０を所定の位置まで移動させるために、「Action Follow Me」の音声コマンドを発声する。シナリオ作成部１２４は、この音声コマンドに応じて、駆動制御部１２１に対して、オペレーターに追従してロボット１０を移動させる指示を行う。ロボット１０がオペレーターに追従する動作は、例えば、測域センサ１３４（図２参照）の検知結果やカメラ１３１により撮影された映像などを用いて行われる。ロボット１０が移動先に移動すると、シナリオ作成部１２４は、シナリオテーブルのＮｏ．３の行の「TimeStamp」の項目に、その時点のタイマ１３７のタイムスタンプ（「00:00:10」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．３の行の「コマンド」、「対象」、「アイテム」の項目に、それぞれ、「Action」、「Follow」、「Me」を記録する。
【０１１６】
ただし、最後のパラメータ「Me」は、オペレーター不在の状況（ロボット１０の実運用時等）でロボット１０が単体で動作（自律移動）する際に参照するシナリオにおいては、不要となる。したがって、ロボット１０の実運用時のシナリオでは、パラメータ「Me」は、例えば、移動先の位置を示す「One」等に修正される。
【０１１７】
次いで、オペレーターは、オペレーターに追従して移動した後の場所をロボット１０に記憶させるために、「Record Position One」の音声コマンドを発声する。シナリオ作成部１２４は、この音声コマンドに応じて、駆動制御部１２１からロボット１０の移動先の現在位置に関する情報を読み出し、読み出した現在位置を「One」のポジションに登録する。
【０１１８】
そして、シナリオ作成部１２４は、シナリオテーブルのＮｏ．４の行の「TimeStamp」の項目に、その時点のタイマ１３７のタイムスタンプ（「00:00:30」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．４の行の「コマンド」、「対象」、「アイテム」の項目に、それぞれ、「Record」、「Position」、「One」を記録するとともに、ロボット１０の現在位置（移動先）に関する情報を記録する。なお、上述したＮｏ．３、Ｎｏ．４の記録指示を繰り返すことにより、ロボット１０の様々な移動経路をシナリオに記録することができる。
【０１１９】
次いで、オペレーターは、ロボット１０に発話の指示を行うために「Talk <こんにちは>」の音声コマンドを発声する。ロボット１０の対話制御部１２２は、「Talk」に続いて発声された音声を音声認識し、「konnichiwa」等の音声認識結果（テキスト記録）を得る。そして、シナリオ作成部１２４は、シナリオテーブルのＮｏ．５の行の「TimeStamp」の項目に、その時点（対話動作開始時）のタイマ１３７のタイムスタンプ（「00:01:00」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．５の行の「コマンド」及び「対象」の項目に、それぞれ、「Talk」、「こんにちは」を記録する。
【０１２０】
次いで、オペレーターは、ロボット１０に対話の指示を行うために「Dialogue QA1」の音声コマンドを発声する。「QA1」は、対話制御部１２２に予め記憶された対話用データベースの名称である。シナリオ作成部１２４は、この発声に応じて、シナリオテーブルのＮｏ．６の行の「TimeStamp」の項目に、その時点のタイマ１３７のタイムスタンプ（「00:02:00」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．６の行の「コマンド」及び「対象」の項目に、それぞれ、「Dialogue」、「QA1」を記録する。
【０１２１】
次いで、オペレーターは、ロボット１０に対してホームポジションへの移動を指示するために、「Action Go Home」の音声コマンドを発声する。シナリオ作成部１２４は、この発声に応じて、シナリオテーブルのＮｏ．７の行の「TimeStamp」の項目に、その時点のタイマ１３７のタイムスタンプ（「00:05:00」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．７の行の「コマンド」、「対象」及び「アイテム」の項目に、それぞれ、「Action」、「Go」、「Home」を記録する。
【０１２２】
最後に、オペレーターは、シナリオ作成部１２４によるシナリオの記録（作成）を終了させるために、「Record Scenario Finish」の音声コマンドを発声する。この音声コマンドに応じて、ロボット１０のシナリオ操作モードは、シナリオ実行モードに切り替わる。そして、シナリオ作成部１２４は、この発声に応じて、シナリオテーブルのＮｏ．８の行の「TimeStamp」の項目に、その時点のタイマ１３７のタイムスタンプ（「00:05:05」）を記録する。また、シナリオ作成部１２４は、シナリオテーブルのＮｏ．８の行の「コマンド」、「対象」及び「アイテム」の項目に、それぞれ、「Record」、「Scenario」、「Finish」を記録する。
【０１２３】
ただし、上述したシナリオテーブルの記録が終了した時点では、シナリオテーブルに、シナリオ作成の途中経過の情報も記録されている。したがって、例えば、所定の操作や音声指示などが行われるまでの間は、ロボット１０のシナリオ操作モードを、シナリオ実行モードに復帰させないようにしてもよい。また、図１０に示すシナリオテーブルの例では、シナリオに「Record Scenario Srart」及び「Record Scenario Finish」も含まれているが、実運用時に使用されるシナリオでは、これらの動作指示は削除される。それゆえ、これらの動作指示の削除が完了するまでの間は、ロボット１０に、当該シナリオを実行させないようにしてもよい。
【０１２４】
また、作成されたシナリオテーブルは、ロボット制御装置３０のシナリオ編集部３２４によって編集された後に使用される場合が多い。したがって、シナリオテーブルに編集完了の属性が無い場合には、ロボット１０に、当該シナリオを実行させないようにしてもよい。
【０１２５】
上述した実施形態では、入力部としての、ロボット１０のマイクロフォン１３２に入力された音声コマンド（通信インターフェース１４０が受信したティーチング装置２０からの指示でもよい）に基づいて、シナリオ作成部１２４が、オペレーターの指示に従った移動作、発話、対話動作のうちの少なくとも一つの動作をロボット１０に行わせる。また、シナリオ作成部１２４は、該動作を、入力部に入力された指示により指定された条件でロボットに実行させることを規定したシナリオを作成する。それゆえ、本実施形態によれば、自律移動するロボット１０のシナリオの作成工数を低減（削減）することができる。
【０１２６】
また、上述した実施形態では、シナリオ作成部１２４は、入力部に入力された指示の内容、指示に対応するロボット１０の動作の内容、及び、動作を実行させる条件の各情報をシナリオに記録する。したがって、本実施形態によれば、自律移動するロボット１０のシナリオの作成工数を低減（削減）することができる。
【０１２７】
また、上述した実施形態では、シナリオ作成部１２４は、シナリオ作成部１２４は、動作を実行させる条件として、シナリオの作成開始時からの経過時間、及び／又は、指示に基づきロボットが動作した時点におけるロボットの位置情報をシナリオに記録する。それゆえ、本実施形態によれば、ロボットにシナリオに規定された動作を実行させる条件も、シナリオに記録することができる。
【０１２８】
また、上述した実施形態では、シナリオ作成部１２４は、入力部に入力された指示に基づいて、ロボット１０に動作を指示するオペレーターにロボットを追従して移動させることにより、ロボット１０の動作の基準となる位置、ロボットの移動先の位置、ロボットの移動経路のうちの少なくとも一つをシナリオに記録する。それゆえ、本実施形態によれば、ロボット１０のオペレーターは、ロボット１０を実際に移動させてその動作を確認しつつ、シナリオ作成部１２４にシナリオを記録（作成、編集）させることができる。
【０１２９】
また、上述した実施形態では、シナリオ作成部１２４は、入力部に入力された指示に基づいて、シナリオを作成するシナリオ作成モードと、シナリオに基づいてロボットを動作させるシナリオ実行モードとの切り替えを行う。したがって、本実施形態によれば、ロボット１０のオペレーターは、ロボット１０の導入現場において、シナリオ実行モードでロボット１０をシナリオに基づいて動作させることによりロボット１０の動作イメージを確認しつつ、シナリオ記録モードによってシナリオを自動的に記録させることができる。
【０１３０】
また、上述した実施形態では、シナリオ作成部１２４は、入力部に入力されたオペレーターの発話内容の音声認識結果、又は、オペレーターによって入力されたテキストを、ロボットが有する音声合成機能を用いてロボットが発声する言葉として、シナリオに記録する。それゆえ、本実施形態によれば、ロボット１０のオペレーターは、ロボット１０に発声させたい言葉を発話、又は、テキスト入力することにより、その言葉を容易にシナリオに記録する（反映させる）ことができる。
【０１３１】
また、上述した実施形態では、オペレーターからの指示は、予め定義された音声コマンドを用いて行われる。それゆえ、本実施形態によれば、ロボット１０のオペレーターは、音声コマンドを用いて容易にシナリオを作成することができる。
【０１３２】
また、上述した実施形態では、シナリオ作成部１２４は、音声コマンドの種別、音声コマンドによって制御される対象、及び、制御のパラメータを、シナリオに記録する。それゆえ、本実施形態によれば、ロボット１０のオペレーターは、音声コマンドを用いて、容易にシナリオを作成することができる。
【０１３３】
＜各種変形例＞
以上、本発明の一実施形態に係るロボットのシナリオ作成システム１について説明したが、本発明は上記実施形態に限定されず、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の変形例、応用例を取り得る。例えば、次のような各種変形例も本発明に含まれる。
【０１３４】
上述した実施形態では、ロボット１０が各動作を実行する条件を規定するパラメータとして、タイマ３７によるシナリオ作成開始時からの経過時間（タイムスタンプ）を用いる例を挙げたが、本発明はこれに限定されない。例えば、ロボット１０が各動作を実行する条件を規定するパラメータとして、ロボット１０の位置情報を使用してもよい。もしくは、ロボット１０が各動作を実行する条件を規定するパラメータとして、タイムスタンプ及びロボット１０の位置情報の両方を用いてもよい。
【０１３５】
図１１は、変形例に係るロボット１０において作成されたシナリオテーブルの構成例を示す図である。図１１に示すシナリオテーブルは、動作指示（「Ｎｏ．」）毎に、ロボット１０の現在位置情報（「Position」）、コマンド種別（「コマンド」）、制御対象（「対象」）、及び、制御パラメータ（「アイテム」）が規定される。なお、図１１中の「注釈」欄には、動作指示の内容が示されている。
【０１３６】
例えば、オペレーターによって「Record Scenario Start」の音声コマンドが発声された場合、シナリオテーブルのＮｏ．１の行の「Position」の項目には、ロボット１０の現在位置の情報として、ロボット１０のｘ座標、ｙ座標、角度が記録される。「角度」は、ロボット１０の正面が向いている方向の角度である。
【０１３７】
ロボット１０が、例えば、シナリオにより指定されたルートとは独立した、予め定められた所定の範囲を一周する等の自律動作を行った場合には、シナリオテーブルにおいて設定された座標周辺に到達した時点で、ロボット１０は、その座標位置と対応付けられたシナリオ動作を実行することができる。
【０１３８】
また、上述した実施形態では、シナリオ作成部１２４がロボット１０内に設けられる例を挙げたが、本発明はこれに限定されない。シナリオ作成部１２４は、例えば、ロボット制御装置３０内に設けられてもよい。
【０１３９】
また、上述した実施形態では、シナリオ操作モードがシナリオ記録モードである場合に、シナリオの記録、編集を行う例を挙げたが、本発明はこれに限定されない。例えば、シナリオ編集モードを別途設け、シナリオの編集は、このシナリオ編集モードにおいて行う構成としてもよい。
【０１４０】
なお、上述した実施形態及び変形例は本発明を分かりやすく説明するために装置（ロボット、ティーチング装置、ロボット制御装置、ロボットのシナリオ作成システム）の構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【０１４１】
また、上述したロボットのシナリオ作成システムの制御に係る各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現されてもよい。また、上述した制御に係る各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより、すなわち、ソフトウェアにより実現されてもよい。なお、各機能を実現するプログラム、テーブル、ファイル等の情報（データ）は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置又はＩＣカード、ＳＤカード、ＤＶＤなどの記録媒体に格納することができる。
【符号の説明】
【０１４２】
１…ロボットのシナリオ作成システム、１０…ロボット、２０…ティーチング装置、３０…ロボット制御装置、１００…ロボット、１０３…通信インターフェース、１１０…ＣＰＵ、１２０…記憶装置、１２１…駆動制御部、１２２…対話制御部、１２３…入出力部、１２４…シナリオ作成部、１２５…シナリオ記憶部、１３０…入出力装置、１３１…カメラ、１３２…マイクロフォン、１３３…ジャイロセンサ、１３４…測域センサ、１３５…スピーカ、１３６…駆動機構、１３７…タイマ、１４０…通信インターフェース、２０３…通信インターフェース、２１０…ＣＰＵ、２２０…記憶装置、２２１…駆動制御部、２２２…入出力部、２２３…シナリオ制御部、２３０…入出力装置、２３１…ジョイスティック、２３２…シナリオボタン、２４０…通信インターフェース、３１０…ＣＰＵ、３２０…記憶装置、３２１…入力データ処理部、３２２…出力データ処理部、３２３…シナリオ作成部、３２４…シナリオ編集部、３２５…シナリオ記憶部、３３０…通信インターフェース
【図１】
2020146784.tif 000003
【図２】
2020146784.tif 000004
【図３】
2020146784.tif 000005
【図４】
2020146784.tif 000006
【図５】
2020146784.tif 000007
【図６】
2020146784.tif 000008
【図７】
2020146784.tif 000009
【図８】
2020146784.tif 000010
【図９】
2020146784.tif 000011
【図１０】
2020146784.tif 000012
【図１１】
2020146784.tif 000013