(57)【要約】【課題】多様な動作表現を可能とするロボット、自律行動方法およびプログラムを提供する。【解決手段】ロボット１は、第１の行動をロボット１に実行させる第１行動制御部２１２と、第２の行動をロボット１に実行させる第２行動制御部２１３と、行動選択部２１４と、行動実行部２３０とを備える。行動選択部２１４は、外部からの刺激を表す外部刺激情報に基づいて、第１行動制御部２１２と第２行動制御部２１３から、ロボット１を制御させる行動制御部を選択する。行動実行部２３０は、行動選択部２１４が選択した行動制御部の制御によって、第１の行動または第２の行動を実行する。【選択図】図３
2019058978.tif 000002
【特許請求の範囲】
【請求項１】
第１の行動と、前記第１の行動とは異なる第２の行動とを実行するロボットであって、
前記第１の行動を該ロボットに実行させる第１行動制御部と、
前記第２の行動を該ロボットに実行させる第２行動制御部と、
外部からの刺激を表す外部刺激情報に基づいて、前記第１行動制御部および前記第２行動制御部から、該ロボットを制御させる行動制御部を選択する行動選択部と、
前記行動選択部が選択した前記行動制御部の制御によって、前記第１の行動または前記第２の行動を実行する行動実行部と、
を備えるロボット。
【請求項２】
外部からの刺激を表す外部刺激情報を取得する外部刺激情報取得部と、
前記外部刺激情報取得部が取得した外部刺激情報を解析する外部刺激情報解析部と、をさらに備え、
前記行動選択部は、前記外部刺激情報解析部が解析した結果に基づいて、前記第１行動制御部および前記第２行動制御部から、該ロボットを制御させる行動制御部を、前記第１の行動および前記第２の行動の実行時間よりも短い基準時間ごとに選択し、
前記行動実行部は、前記行動選択部が選択した前記行動制御部の制御によって、前記第１の行動または前記第２の行動を前記基準時間ごとに実行する、
請求項１に記載のロボット。
【請求項３】
前記第１行動制御部および前記第２行動制御部は、前記外部刺激情報解析部が解析した結果に基づいて、行動を実行する優先度を前記基準時間ごとに決定し、
前記行動選択部は、前記第１行動制御部および前記第２行動制御部が決定した前記優先度に基づいて、ロボットを制御させる行動制御部を選択する、
請求項２に記載のロボット。
【請求項４】
前記行動選択部は、外部刺激に基づいて、それぞれの前記行動制御部の行動を実行する優先度を前記基準時間ごとに決定し、前記決定した優先度に基づいて、ロボットを制御させる行動制御部を選択する、
請求項２に記載のロボット。
【請求項５】
前記第１行動制御部および前記第２行動制御部、または前記行動選択部は、前記第１の行動または前記第２の行動を開始する優先度よりも、前記第１の行動または前記第２の行動を継続する優先度を高く決定する、
請求項３または４に記載のロボット。
【請求項６】
前記第１行動制御部および前記第２行動制御部、または前記行動選択部は、前記第１の行動または前記第２の行動を中断している場合に前記第１の行動または前記第２の行動を再開する優先度を、前記外部刺激情報解析部が解析した結果に基づいて決定する、
請求項３から５のいずれか１項に記載のロボット。
【請求項７】
前記第１行動制御部および前記第２行動制御部、または前記行動選択部は、前記外部刺激情報解析部が解析した結果に自身の名前が含まれる場合には、自身の名前が含まれない場合よりも高く優先度を決定する、
請求項３から６のいずれか１項に記載のロボット。
【請求項８】
前記行動選択部は、前記第１行動制御部および前記第２行動制御部が合わせて実行可能な組み合わせであることが設定されている場合には、該ロボットを制御させる行動制御部として、前記第１行動制御部および前記第２行動制御部を選択する、
請求項１から７のいずれか１項に記載のロボット。
【請求項９】
第１の行動の実行中に外部刺激を受けた場合に、前記第１の行動を継続する第１の優先度と前記外部刺激に基づく第２の行動を開始する第２の優先度とを取得し、
前記第２の優先度が前記第１の優先度より高い場合には、前記第１の行動を中断して、前記第２の行動を実行する、
自律行動方法。
【請求項１０】
第１の行動と、前記第１の行動とは異なる第２の行動とを実行するロボットであって、前記第１の行動を該ロボットに実行させる第１行動制御部と、前記第２の行動を該ロボットに実行させる第２行動制御部と、を備えるロボットを制御するコンピュータに、
外部からの刺激を表す外部刺激情報を解析する外部刺激情報解析ステップと、
前記外部刺激情報解析ステップで解析した結果に基づいて、前記第１行動制御部および前記第２行動制御部から、前記ロボットを制御させる行動制御部を選択する行動選択ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、自律行動方法およびプログラムに関する。
【背景技術】
【０００２】
外部からの刺激に対応して、自律的に行動するロボットが開発されている。例えば、特許文献１には、内部状態及び外部刺激に基づいて自律的に行動を選択するロボット装置が開示されている。また、特許文献２には、ロボット装置の内部状態等によって、特定の行動をやりたくないという負の欲求を示した場合には、その特定の行動を選択せず、別の行動を選択するロボット装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４５５２４６５号公報
【特許文献２】特開２００４−２８３９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットが自律的に行動し、一連の行動を実行中に外部刺激を受けた場合、外部刺激に対応して実行中の行動を中断して別の行動を実行したり、さらに別の行動を実行した後にその行動を再開したり、あるいは、外部刺激を無視して実行中の行動を継続したり、といった多様な動作をすることが望まれている。しかしながら、特許文献１および特許文献２に記載の技術では、一連の行動の実行中に外部刺激を受けた場合、外部刺激に対応して多様な動作を十分に表現する技術となっていなかった。
【０００５】
本発明は、上記実情に鑑みてなされたものであり、多様な動作表現を可能とするロボット、自律行動方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明のロボットは、
第１の行動と、前記第１の行動とは異なる第２の行動とを実行するロボットであって、
前記第１の行動を該ロボットに実行させる第１行動制御部と、
前記第２の行動を該ロボットに実行させる第２行動制御部と、
外部からの刺激を表す外部刺激情報に基づいて、前記第１行動制御部および前記第２行動制御部から、該ロボットを制御させる行動制御部を選択する行動選択部と、
前記行動選択部が選択した前記行動制御部の制御によって、前記第１の行動または前記第２の行動を実行する行動実行部と、
を備える。
【発明の効果】
【０００７】
本発明によれば、多様な動作表現を可能とするロボット、自律行動方法およびプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るロボットの外観図である。
【図２】本発明の実施形態に係るロボットのハードウェア構成図である。
【図３】本発明の実施形態に係るロボットの機能ブロック図である。
【図４】本発明の実施形態に係る優先度の設定の一例を表す図である。
【図５】本発明の実施形態に係る行動制御処理のフローチャートである。
【図６】本発明の実施形態に係るロボットの行動の一例を表す図である。
【図７】本発明の実施形態の変形例に係る優先度の設定の一例を表す図である。
【発明を実施するための形態】
【０００９】
以下、本発明のロボットを、ユーザとコミュニケーションを取って自律的に行動するロボットに適用した実施の形態について、図面を参照して説明する。
【００１０】
（実施形態）
本実施形態に係るロボット１は、人型のロボットであり、ユーザの呼びかけに応じて返事をしたり、ダンスをしたり、といった自律的な行動をすることができるものである。ロボット１は、図１に示すように、カメラ１１と、マイク１２と、スピーカ１３と、手足１４と、頭部１６と、胴体部１７とを備える。
【００１１】
カメラ１１は、ロボット１の目の位置に配置され、周囲の画像を撮影する。撮影した画像は、環境地図の作成、ユーザの顔認識等のための画像解析処理に使用される。この画像には、動画と静止画が含まれる。ロボット１は、この画像解析処理によって、自己の位置を特定したり、ユーザの判別、位置、顔の向き等を特定したりすることができる。
【００１２】
マイク１２は、ロボット１の耳の位置に配置され、音声を受けて、音声信号に変換する。変換された音声信号は、ユーザの発言内容や周囲の音を認識するための音声解析処理に使用される。ロボット１は、この音声解析処理によって、ユーザの判別をしたり、ユーザの発言の内容を特定したりすることができる。
【００１３】
スピーカ１３は、ロボット１が生成した音声信号を音声に変換して出力する。例えば、ロボット１がユーザの呼びかけに対して返事をする場合、「はい」という声を表す音声信号をスピーカ１３に送信する。スピーカ１３は、受信した音声信号を変換し、「はい」という声を発する。
【００１４】
手足１４は、ロボット１の手および足に対応する部品である。ロボット１は、複数の手足１４をそれぞれ制御して動かすことによって、例えば、歩く、おじぎをする、ダンスをする、といった行動を実行することができる。さらに、頭部１６は、ロボットの顔及び頭に対応する部品であり、胴体部１７は、ロボットの胴体に対応する部品である。ロボット１は、頭部１６または胴体部１７を制御して動かすことによって、例えば、おじぎをするとき頭を下げるような行動や、ダンスをするとき胴体を左右に揺らすような行動を実行することができる。
【００１５】
次に、ロボット１の内部構造について、図２を参照して説明する。ロボット１は、前述のカメラ１１とマイク１２とスピーカ１３と手足１４と頭部１６と胴体部１７に加えて、コントローラ１５を備える。
【００１６】
コントローラ１５は、カメラ１１、マイク１２、スピーカ１３、手足１４、頭部１６および胴体部１７のそれぞれと通信可能に接続されている。コントローラ１５は、カメラ１１から取得した画像を解析する画像解析処理を行ったり、マイク１２から取得した音声を解析する音声解析処理を行ったりする。また、コントローラ１５は、スピーカ１３に音声信号を送信したり、手足１４、頭部１６および胴体部１７に制御信号を送信したりする。
【００１７】
コントローラ１５は、ＣＰＵ（Central Processing Unit）１５１と、ＲＡＭ（Random Access Memory）１５２と、ＲＯＭ（Read Only Memory）１５３とを備える。
【００１８】
ＣＰＵ１５１は、ＲＯＭ１５３に格納されている制御用のプログラムを実行することにより、コントローラ１５が行う各種の処理を実行する。
【００１９】
ＲＡＭ１５２は、揮発性メモリから構成され、ＣＰＵ１５１の作業領域として用いられる。
【００２０】
ＲＯＭ１５３は、フラッシュメモリ等の不揮発性メモリから構成され、ＣＰＵ１５１が実行する制御プログラムや各種固定データを格納する。各種固定データには、後述する優先度の設定が含まれる。
【００２１】
次に、ロボット１の機能構成について、図３を参照して説明する。ロボット１は、制御部２１０と、外部刺激情報取得部２２０と、行動実行部２３０とを備える。
【００２２】
制御部２１０は、コントローラ１５に相当する機能部であり、後述する外部刺激情報取得部２２０から取得した外部刺激情報を解析して、その解析の結果に基づいて、ロボット１が実行する行動を決定する。そして、制御部２１０は、後述する行動実行部２３０を制御して、決定した行動を実行させる。
【００２３】
外部刺激情報取得部２２０は、カメラ１１およびマイク１２に相当する機能部であり、外部刺激情報を取得して制御部２１０に送る。本実施形態において、外部刺激とは、ユーザの声、音、ユーザの顔が近づくこと等を指すものであり、外部刺激情報とは、カメラ１１またはマイク１２が取得した画像または音声の情報を指すものである。例えば、マイク１２は、ユーザの呼びかけの声またはユーザが拍手をした音を取得して、音声信号としてコントローラ１５に送信する。外部刺激情報取得部２２０は、非常に短い時間ごとに取得した外部刺激情報を制御部２１０に送る。例えば、カメラ１１は、動画を６０ｆｐｓのフレームレートで制御部２１０に送信する。また、マイク１２は、音声を４８ｋＨｚのサンプリングレートで制御部２１０に送信する。ここに挙げた音、声、顔の近づき等の外部刺激は一実施形態であって、各種センサを搭載して匂い、風、温度、揺れ、物理的接触等に対応できるようにしてもよい。
【００２４】
行動実行部２３０は、スピーカ１３、手足１４、頭部１６および胴体部１７に相当する機能部であり、制御部２１０の制御によって、特定の行動を実行する。例えば、ダンスをするという行動は、コントローラ１５が手足１４、頭部１６および胴体部１７の動きを制御することによって実現される。また、ユーザに返事をするという行動は、コントローラ１５がスピーカ１３を制御することによって実現される。
【００２５】
制御部２１０は、外部刺激情報解析部２１１と、第１行動制御部２１２と、第２行動制御部２１３と、行動選択部２１４とを備える。ここでは代表して２つの行動制御部の関係について説明するが、制御部２１０は、実際には同様の原理で多数の行動制御部を備えることができる。
【００２６】
外部刺激情報解析部２１１は、外部刺激情報取得部２２０から取得した外部刺激情報を解析する。外部刺激情報解析部２１１は、例えば、カメラ１１から取得した画像を解析する画像解析を行い、マイク１２から取得した音声を解析する音声解析を行う。外部刺激情報解析部２１１は、それらの解析の結果、例えば、ユーザが自分を呼んでいること、ユーザが拍手をしていることなどを認識する。なお、外部刺激情報解析部２１１は、これらの解析を例えば一定時間ごとに行い、ＲＡＭ１５２に記憶しておく。
【００２７】
第１行動制御部２１２および第２行動制御部２１３は、それぞれ特定の行動を行動実行部２３０に実行させる制御をする行動制御部である。これらの行動制御部は、それぞれに規定された行動をロボット１が行うために、行動実行部２３０を制御する。本実施形態においては、第１行動制御部２１２はダンスをする行動を行動実行部２３０に実行させ、第２行動制御部２１３は、ユーザに返事をする行動を行動実行部２３０に実行させる。ロボット１の行動にはさまざまなものが考えられるため、行動制御部は２つに限らず、３つ以上であっても良い。それぞれの行動制御部は、一連の行動を短い時間（例えば、０．１秒）の間欠動作の連なりとして規定する。この例では、第１行動制御部２１２は、ダンスをする行動を実行させるため、行動実行部２３０のそれぞれの動きを０．１秒ごとに制御する。以下、本実施形態において、この時間を基準時間と呼ぶ。そして、この基準時間は、前述の外部刺激情報解析部２１１の解析を行う間隔と同じであっても良い。
【００２８】
また、第１行動制御部２１２および第２行動制御部２１３は、外部刺激情報解析部２１１が解析した外部刺激情報に基づいて、それぞれの行動制御部に規定された行動を行動実行部２３０が実行する優先度を基準時間ごとに決定して、行動選択部２１４に出力する。優先度は、図４に示すように、それぞれの行動制御部の行動内容と外部刺激の内容に応じて、あらかじめ設定されている。例えば、第１行動制御部２１２は、拍手という外部刺激に対して６０点、呼びかけという外部刺激に対して０点と設定されている。この設定内容は、ロボット１は、他に優先度の高い行動が無ければ、拍手を受けるとダンスをする仕様になっているが、呼びかけを受けてもダンスをする仕様にはなっていないことを意味する。同様に、第２行動制御部２１３は、拍手という外部刺激に対して４０点、呼びかけという外部刺激に対して８０点と設定されている。また、一連の行動を実行するように行動実行部２３０を制御している途中である場合の優先度も設定されている。例えば、「実行中」のフィールドがその場合の優先度を表しており、第１行動制御部２１２は７０点、第２行動制御部２１３は９０点と設定されている。また、それぞれの行動制御部が行動実行部２３０を制御している途中で中断され、別の行動制御部の制御が行われた場合、それぞれの行動制御部は一連の動作を一時中断している状態となる。そのような場合のために、一連の動作を再開する場合の優先度も設定されている。例えば、「再開」のフィールドがその場合の優先度を表しており、第１行動制御部２１２は５０点、第２行動制御部２１３は０点と設定されている。これらの優先度は、それぞれの行動の性質、外部刺激との関連性などによって適切に設定しておくことによって、ロボット１が自然な動作を行うことができる。
【００２９】
行動選択部２１４は、基準時間ごとに、ロボット１の次の行動を制御する行動制御部を選択する。具体的には、それぞれの行動制御部が取得した優先度を比較して、最も高い優先度を出力した行動制御部を、ロボット１の次の行動を制御する行動制御部として選択する。そして、選択した結果をそれぞれの行動制御部に通知する。そして、ロボット１の次の行動を制御する行動制御部として選択された通知を受けた行動制御部は、行動実行部２３０を制御して、次の基準時間が経過するまで、自身に規定された行動を実行させる。
【００３０】
次に、ロボット１の動作について、図面を参照して説明する。ロボット１が起動すると、外部刺激情報取得部２２０は、外部刺激情報の取得を開始し、制御部２１０に送信する。そして、外部刺激情報解析部２１１は、送信された外部刺激情報を一定間隔で解析して、解析結果をＲＡＭ１５２に格納する。一方、ロボット１が起動すると、制御部２１０は、行動制御処理を開始する。制御部２１０が実行する行動制御処理のフローについて、図５を参照して説明する。
【００３１】
制御部２１０は、行動制御処理を開始すると、前回このステップＳ１の判定処理を通過して、ステップＳ２以降の処理を実行してから、基準時間を経過したか否かを判定する（ステップＳ１）。なお、初回は、基準時間を経過したものとして扱う。制御部２１０は、基準時間を経過していないと判定すると（ステップＳ１：Ｎｏ）、再度ステップＳ１の判定処理を実行する。そして、制御部２１０は、基準時間を経過したと判定すると（ステップＳ１：Ｙｅｓ）、外部刺激情報の解析結果を取得する（ステップＳ２）。具体的には、制御部２１０は、ＲＡＭ１５２を参照して、外部刺激情報解析部２１１が一定の間隔で解析した解析結果のうち、基準時間内に解析された解析結果を取得する。なお、外部刺激情報解析部２１１が一定の間隔で外部刺激情報を解析する処理を外部刺激情報解析ステップとする。
【００３２】
次に、制御部２１０の第１行動制御部２１２および第２行動制御部２１３は、図４に示すような優先度の設定をＲＯＭ１５３から取得して、ステップＳ２で取得した外部刺激情報の解析結果に基づいて、優先度を決定する（ステップＳ３）。具体的には、第１行動制御部２１２および第２行動制御部２１３は、自身の規定する行動を実行中の場合、すなわち、直前の基準時間内に自身が行動実行部２３０を制御していた場合であって、その制御していた行動が完了していない場合、優先度の設定の「実行中」フィールドの優先度を今回の優先度として決定する。また、第１行動制御部２１２および第２行動制御部２１３は、自身の規定する行動の実行を中断している場合、すなわち、自身が行動実行部２３０を制御していた場合であって、その制御していた行動が完了していないときに、他の行動制御部が行動の制御を行っている場合、優先度の設定の「再開」フィールドの優先度を今回の優先度として決定する。また、上記のいずれでも無い場合、ステップＳ２で取得した外部刺激情報の解析結果を参照して、優先度の設定の「外部刺激」フィールドに該当するものがあれば、それを今回の優先度として決定する。なお、上記のいずれにも該当しない場合は、今回の優先度を０点とする。それぞれの行動制御部は、決定した優先度を行動選択部２１４に出力する。
【００３３】
次に、行動選択部２１４は、それぞれの行動制御部が出力した優先度を比較して、どの行動制御部に行動実行部２３０を制御させるかを選択する（ステップＳ４）。具体的には、行動選択部２１４は、単純に最も高い優先度を出力した行動制御部を選択する。ここで、行動選択部２１４は、優先度に加えて、優先度以外の要素にも基づいて、行動制御部を選択しても良い。例えば、行動選択部２１４は、行動制御部ごとに行動した回数をＲＯＭ１５３に記憶しておき、それに基づいて、行動の偏りを解消するように行動制御部を選択しても良い。または、ユーザの嗜好、性格等に基づいて、あらかじめ優先的な行動制御部を設定しておいても良い。そして、行動選択部２１４は、このようにして選択した結果をそれぞれの行動制御部に通知する。なお、ステップＳ４は、ロボット１を制御させる行動制御部を選択する行動選択ステップとして機能する。
【００３４】
次に、行動選択部２１４の選択結果を受けた行動制御部のうち、行動実行部２３０を制御させるものとして選択された行動制御部は、行動実行部２３０を制御する（ステップＳ５）。そして、制御部２１０は、自身が選択した行動制御部がどれであったかをＲＡＭ１５２に記録しておき、ステップＳ１の処理に戻って、行動制御処理の実行を続ける。
【００３５】
以上のように、ロボット１は、基準時間ごとに、行動実行部２３０を制御する行動制御部を選択的に変更することによって、多様な動作を行うことができる。次に、現実に即した具体例について、図６を参照して説明する。
【００３６】
時刻Ｔ０にロボット１が起動すると、制御部２１０は行動制御処理を開始する。制御部２１０は、初回起動時のため、行動制御処理のステップＳ１では基準時間を経過したものと扱い、ステップＳ２の外部刺激情報を取得する処理を行う。ステップＳ２では、それぞれの外部刺激情報の解析結果を取得するが、この場合、起動直後であるために、特に外部刺激情報は無く、また、初回は、優先度の設定として「実行中」、「再開」等にも該当しないため、ステップＳ３のそれぞれの行動制御部の優先度を決定する処理において、第１行動制御部２１２および第２行動制御部２１３は、優先度を０点と決定する。これに基づいて、行動選択部２１４は、ステップＳ４の処理にて、優先度が最も高い行動制御部を特定できないため、行動実行部２３０を制御する行動制御部を選択できない。したがって、時刻Ｔ０では、第１行動制御部２１２および第２行動制御部２１３は行動実行部２３０を制御する処理を実行しない。
【００３７】
図６に戻り、次の基準時間経過後の時刻Ｔ１までに、ユーザが拍手をしたものとする。この場合、図４に示す設定の「外部刺激」の「拍手」のフィールドを参照して、第１行動制御部２１２は６０点、第２行動制御部２１３は４０点を、それぞれの優先度として決定する。行動選択部２１４は、これらの優先度を比較して、優先度の高い第１行動制御部２１２を、行動実行部２３０を制御する行動制御部として選択する。このようにして、時刻Ｔ１においては、第１行動制御部２１２が行動実行部２３０を制御することによって、ロボット１は、ダンスを開始する。
【００３８】
次の基準時間経過後の時刻Ｔ２までに、特に外部刺激が無かったものとする。この場合、時刻Ｔ２では、第１行動制御部２１２は、行動実行部２３０の制御を実行中であるため、図４に示す設定の「実行中」のフィールドを参照して、優先度を７０点と決定する。一方、第２行動制御部２１３は、行動実行部２３０の制御を実行中でもなく、中断しているわけでもなく、また特に外部刺激も無いため、優先度を０点と決定する。行動選択部２１４は、これらの優先度を比較して、優先度の高い第１行動制御部２１２を、行動実行部２３０を制御する行動制御部として再び選択する。このようにして、時刻Ｔ２においては、第１行動制御部２１２が行動実行部２３０の制御を再び行うことによって、ロボット１は、ダンスを継続する。
【００３９】
次の基準時間経過後の時刻Ｔ３までに、ユーザがロボット１を呼んだものとする。この場合でも、第１行動制御部２１２は、時刻Ｔ３の処理において、行動実行部２３０の制御を実行中であるため、図４に示す設定の「実行中」のフィールドを参照して、優先度を７０点と決定する。一方、第２行動制御部２１３は、「外部刺激」の「呼びかけ」のフィールドを参照して、優先度を８０点と決定する。行動選択部２１４は、これらの優先度を比較して、優先度の高い第２行動制御部２１３を、行動実行部２３０を制御する行動制御部として選択する。このようにして、時刻Ｔ３においては、第２行動制御部２１３が行動実行部２３０の制御を行うことによって、ロボット１は、返事を開始する。
【００４０】
次の基準時間経過後の時刻Ｔ４までに、特に外部刺激が無かったものとする。この場合、時刻Ｔ４では、第１行動制御部２１２は、行動実行部２３０の制御を中断しているため、図４に示す設定の「再開」のフィールドを参照して、優先度を５０点と決定する。第２行動制御部２１３は、行動実行部２３０の制御を実行中であるため、「実行中」のフィールドを参照して、優先度を９０点と決定する。これらの優先度を比較して、優先度の高い第２行動制御部２１３を、行動実行部２３０を制御する行動制御部として選択する。このようにして、時刻Ｔ４においては、第２行動制御部２１３が行動実行部２３０の制御を再び行うことによって、ロボット１は、返事を継続する。なお、返事を継続するということは、例えば、日本語の場合には、「はい」という返事の「は」という音を発した後に「い」という音を発するというケースに相当する。また、英語の場合には、「Ｙｅｓ，ｓｉｒ」という返事の「Ｙｅｓ」という単語の音を発した後に「ｓｉｒ」という単語の音を発するといったケースに相当する。ここでは文字で表現しているが、音声波形の固まり単位で継続するケースにも相当する。
【００４１】
次の基準時間経過後の時刻Ｔ５までに、返事をする行動が終了したものとする。この場合、時刻Ｔ５では、第１行動制御部２１２は、行動実行部２３０の制御を中断しているため、図４に示す設定の「再開」のフィールドを参照して、優先度を５０点と決定する。一方、第２行動制御部２１３は、行動実行部２３０の制御を実行中でもなく、中断しているわけでもなく、また特に外部刺激も無いため、優先度を０点と決定する。行動選択部２１４は、これらの優先度を比較して、優先度の高い第１行動制御部２１２を、行動実行部２３０を制御する行動制御部として選択する。このようにして、時刻Ｔ５においては、第１行動制御部２１２が行動実行部２３０の制御を行うことによって、ロボット１は、ダンスを再開する。
【００４２】
以上のようにして、ロボット１は、拍手を受けた後にダンスを開始し、ダンスをしている途中でユーザに呼ばれ、ダンスを一旦中断して返事をした後、ダンスを再開する、という動きをすることができる。
【００４３】
上述の通り、本実施形態に係るロボット１は、一連の行動を実行中に、一連の行動の実行時間よりも短い基準時間ごとに、行動実行部２３０を制御する行動制御部を選択する。これによって、ロボット１は、一連の行動（第１の行動）の実行中に外部刺激を受けた場合に、第１の行動を継続する第１の優先度と前記外部刺激に基づく第２の行動を開始する第２の優先度とを取得し、第２の優先度が第１の優先度より高い場合には、第１の行動を中断して、第２の行動を実行するものであるということができる。このようにして、本実施形態に係るロボット１は、短い行動を選択的に繰り返し実行することによって、複雑な処理を行うことなく、適宜、実行する行動を変更しながら動作することによって、多様な動作を行うことができる。
【００４４】
本実施形態に係るロボット１は、それぞれの行動制御部が行動を実行する優先度を決定することによって、行動選択部２１４の処理が単純になっている。そのため、ロボット１に新たな行動を追加する際には、行動制御部を追加することによって、行動選択部２１４に大きな変更を加えることなく、比較的容易に機能を拡張することができる。
【００４５】
本実施形態に係るロボット１は、図４に示すように設定された優先度にしたがって、行動制御処理を実行する。それぞれの行動制御部の優先度は、一連の行動を開始する優先度（「外部刺激」フィールドのそれぞれの値）よりも一連の行動を継続する優先度（「実行中」フィールドの値）の方が高くなっている。これによって、ロボット１は、一連の行動を実施中に頻繁に中断することによる不自然な行動を回避することができ、より自然な行動を実行することができる。
【００４６】
本発明は、上述した実施形態に限定されるわけではなく、その他の種々の変更が可能である。例えば、本実施形態では、それぞれの行動制御部が優先度を決定する例を例示したが、行動選択部２１４が優先度を決定しても良い。その場合、図５に示す行動制御処理のステップＳ３において、行動選択部２１４が第１行動制御部２１２および第２行動制御部２１３の優先度を決定する。その他の処理は、上述した実施形態と同じである。このような構成によれば、それぞれの行動制御部の優先度の決定基準のずれが発生せず、複数の行動制御部の間の優先度を調整しやすくなる。また、正確な動作を求められるロボットではなくユーザとのコミュニケーションを重要視するロボットであれば、あえて規定外の優先度を用意しておくことによって、ロボットがまったく予想外の行動をする面白さを追加してもよい。また、優先度に揺らぎをもたせてもよい。例えば、優先度が７０であるべきところに、乱数を掛け合わせて例えば６５〜７５の揺らぎを持たせる。そうすれば、前回は手をたたくとダンスを中断したのに、今回は手をたたいてもダンスを中断しないというような柔軟性をもたせることができる。
【００４７】
本実施形態では、図４に示すように、それぞれの行動制御部が、実行中だった行動を中断している場合の優先度を「再開」フィールドのみから決定する例を例示した。しかし、中断した行動を再開する優先度を、外部刺激に基づいて決定しても良い。具体的には、図７に示すように、優先度の設定に再開用外部刺激の設定を含める。そして、それぞれの行動制御部は、自身の規定する行動の実行を中断している場合、まず優先度の設定の「再開用外部刺激」フィールドの該当する外部刺激情報のフィールドの値を、今回の優先度として決定する。そして、該当する外部刺激情報のフィールドが無い場合は、「再開」フィールドの優先度を今回の優先度として決定する。例えば、ロボット１がダンスを中断している際にユーザから「続けて」と声を掛けられた場合、外部刺激情報解析部２１１は「続けて」という趣旨の音声を受けたという解析結果を出力する。そして、第１行動制御部は、その解析結果に基づいて、「再開用外部刺激」の「続けて」フィールドの値である８０点を優先度として決定する。
【００４８】
このような構成によれば、行動の実行を中断している場合に再開する合図を決めておくことができる。ロボット１は、特定の行動の再開用の合図を受けた場合には、その特定の行動を再開する。これによって、ロボット１は、より多様な動作を実現することができる。
【００４９】
また、ロボット１に、ユーザから呼ばれている名前がある場合であって、外部刺激情報解析部２１１の解析結果から、その名前を認識することができた場合に、それぞれの行動制御部は、その名前を認識できなかった場合に比べて、高い優先度を決定しても良い。そのように設定すると、ユーザがロボット１に対して合図を送ったのか、偶然合図と同じ動きであったかを識別することができるため、ロボット１は、ユーザとのコミュニケーションをより精度良く行うことができる。
【００５０】
本実施形態では、行動選択部２１４は、行動実行部２３０を制御する行動制御部を１つ選択する例を例示した。しかし、行動選択部２１４は、選択する行動の内容によって、複数の行動制御部を選択しても良い。例えば、第１行動制御部２１２は、ロボット１がダンスをするために、実際には手足１４、頭部１６および胴体部１７を駆動するだけであって、スピーカ１３は動作させない。また、第２行動制御部２１３は、ロボット１が返事をするために、実際にはスピーカ１３に音声を出力させるだけであり、手足１４、頭部１６および胴体部１７は駆動しない。したがって、このような場合には、第１行動制御部２１２と第２行動制御部２１３がともに行動実行部２３０を制御しても良い。この場合、それぞれの行動制御部の行動によって動作するハードウェアをＲＯＭ１５３に記憶しておく。そして、行動選択部２１４は、図５に示した行動制御処理のステップＳ４の行動制御部を選択する処理において、それぞれの行動制御部の行動によって動作するハードウェアを参照して、合わせて実行可能な組み合わせであれば、複数の行動制御部を選択しても良い。そして、通知を受けた複数の行動制御部は、行動制御処理のステップＳ５において、それぞれ対象のハードウェアを制御する。このような構成によれば、ロボット１は、場合によって、複数の動作を同時に行うことができ、より多様な動作を実現することができる。このように、行動制御部の実行中に、別の行動制御部の実行を可能とする。これにより、例えば突発的な「びっくり動作」などへの対応を簡易に構築可能となる。
【００５１】
本実施形態の外部刺激情報取得部２２０に相当するハードウェアとして、カメラ１１およびマイク１２を例示したが、本発明の範囲はこれに限られず、外部刺激情報取得部２２０に相当するハードウェアとして、接触センサ、赤外線センサ、ＧＰＳ（Global Positioning System）受信器、タイマなど、ロボット１の外部のあらゆる情報を取得する部品を含む。例えば、ロボット１が、１０秒おきにまばたきをする、という行動が規定された行動制御部を有するものとする。この場合、外部刺激情報取得部２２０に相当するタイマが時刻を取得して、外部刺激情報解析部２１１がこれを解析する。そして、外部刺激情報解析部２１１は時刻を解析して、前回のまばたきから１０秒経過したことを得ると、これを外部刺激としてＲＡＭ１５２に記憶する。このような構成によれば、ダンスの途中で、１０秒おきにまばたきをする、といったように、時間の経過を契機にした行動を他の行動に割り込ませることができる。
【００５２】
本実施形態の行動実行部２３０に相当するハードウェアとして、スピーカ１３、手足１４、頭部１６および胴体部１７を例示したが、本発明の範囲はこれに限られず、行動実行部２３０に相当するハードウェアとして、目、耳などの手足１４以外の物理的に移動可能な部品や、におい、蒸気等の発生装置など、ロボット１のあらゆる動作を行う部品を含む。
【００５３】
以上の実施形態では、本発明のロボットをユーザとコミュニケーションを取って自律的に行動するロボットに適用したが、コミュニケーションロボットに限らず、工業用、清掃用等の他の用途のロボットに適用しても良い。
【００５４】
上述した、ハードウェア構成、ソフトウェア構成等は、発明の実施形態の理解を容易にするための例示であり、発明を限定するものではない。
【００５５】
なお、ロボットは、専用のシステムによらず、通常のコンピュータを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した記録媒体等から該プログラムをコンピュータにインストールすることにより、上述の処理を実行するロボットを構成することができる。
【００５６】
また、コンピュータにプログラムを供給するための手法は、任意である。例えば、通信回線、通信ネットワーク、通信システム等を介して供給してもよい。
【００５７】
また、上述の機能の一部をＯＳ（Operating System）が提供する場合には、ＯＳが提供する機能以外の部分をプログラムで提供すればよい。
【００５８】
以下に上記実施形態の効果、若しくは実施形態から想定できる応用や効果を列挙する。
・ロボット１に実行させたい行動の追加、削除が、行動制御部の追加、削除により可能となる。これにより、行動制御部を単独で開発することが可能となり、開発効率を上げることができる。
・外部刺激情報に基づいて優先度を決定するのは各行動制御部が行っている。これにより行動選択部２１４は各行動制御部とのＩ／Ｆのみ行えば、取得した優先度に基づいてロボット１を制御する行動制御部を選択できる。この結果、行動制御部を追加することにともなう他の行動制御部および行動選択部２１４の改変を少なくすることができる。したがって、行動制御部を容易に追加することができる。
・ある行動制御部の動作中に一時的に別の行動制御部の動作を行い、その後元の行動制御部の動作を継続したり、発生した事象の内容によっては現在の動作を中断して別の行動選択部が動作させたりすることができ、個々の行動制御部は所定の外部刺激に対する行動内容のみを出力すればよいので、単純な動作の組み合わせで複合的な動作を簡単に実現することができる。
・不規則に入力される外部刺激に対して、より自然な応答動作を行なうことができる。
【００５９】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００６０】
（付記１）
第１の行動と、前記第１の行動とは異なる第２の行動とを実行するロボットであって、
前記第１の行動を該ロボットに実行させる第１行動制御部と、
前記第２の行動を該ロボットに実行させる第２行動制御部と、
外部からの刺激を表す外部刺激情報に基づいて、前記第１行動制御部および前記第２行動制御部から、該ロボットを制御させる行動制御部を選択する行動選択部と、
前記行動選択部が選択した前記行動制御部の制御によって、前記第１の行動または前記第２の行動を実行する行動実行部と、
を備えるロボット。
【００６１】
（付記２）
外部からの刺激を表す外部刺激情報を取得する外部刺激情報取得部と、
前記外部刺激情報取得部が取得した外部刺激情報を解析する外部刺激情報解析部と、をさらに備え、
前記行動選択部は、前記外部刺激情報解析部が解析した結果に基づいて、前記第１行動制御部および前記第２行動制御部から、該ロボットを制御させる行動制御部を、前記第１の行動および前記第２の行動の実行時間よりも短い基準時間ごとに選択し、
前記行動実行部は、前記行動選択部が選択した前記行動制御部の制御によって、前記第１の行動または前記第２の行動を前記基準時間ごとに実行する、
付記１に記載のロボット。
【００６２】
（付記３）
前記第１行動制御部および前記第２行動制御部は、前記外部刺激情報解析部が解析した結果に基づいて、行動を実行する優先度を前記基準時間ごとに決定し、
前記行動選択部は、前記第１行動制御部および前記第２行動制御部が決定した前記優先度に基づいて、ロボットを制御させる行動制御部を選択する、
付記２に記載のロボット。
【００６３】
（付記４）
前記行動選択部は、外部刺激に基づいて、それぞれの前記行動制御部の行動を実行する優先度を前記基準時間ごとに決定し、前記決定した優先度に基づいて、ロボットを制御させる行動制御部を選択する、
付記２に記載のロボット。
【００６４】
（付記５）
前記第１行動制御部および前記第２行動制御部、または前記行動選択部は、前記第１の行動または前記第２の行動を開始する優先度よりも、前記第１の行動または前記第２の行動を継続する優先度を高く決定する、
付記３または４に記載のロボット。
【００６５】
（付記６）
前記第１行動制御部および前記第２行動制御部、または前記行動選択部は、前記第１の行動または前記第２の行動を中断している場合に前記第１の行動または前記第２の行動を再開する優先度を、前記外部刺激情報解析部が解析した結果に基づいて決定する、
付記３から５のいずれか１つに記載のロボット。
【００６６】
（付記７）
前記第１行動制御部および前記第２行動制御部、または前記行動選択部は、前記外部刺激情報解析部が解析した結果に自身の名前が含まれる場合には、自身の名前が含まれない場合よりも高く優先度を決定する、
付記３から６のいずれか１つに記載のロボット。
【００６７】
（付記８）
前記行動選択部は、前記第１行動制御部および前記第２行動制御部が合わせて実行可能な組み合わせであることが設定されている場合には、該ロボットを制御させる行動制御部として、前記第１行動制御部および前記第２行動制御部を選択する、
付記１から７のいずれか１つに記載のロボット。
【００６８】
（付記９）
第１の行動の実行中に外部刺激を受けた場合に、前記第１の行動を継続する第１の優先度と前記外部刺激に基づく第２の行動を開始する第２の優先度とを取得し、
前記第２の優先度が前記第１の優先度より高い場合には、前記第１の行動を中断して、前記第２の行動を実行する、
自律行動方法。
【００６９】
（付記１０）
第１の行動と、前記第１の行動とは異なる第２の行動とを実行するロボットであって、前記第１の行動を該ロボットに実行させる第１行動制御部と、前記第２の行動を該ロボットに実行させる第２行動制御部と、を備えるロボットを制御するコンピュータに、
外部からの刺激を表す外部刺激情報を解析する外部刺激情報解析ステップと、
前記外部刺激情報解析ステップで解析した結果に基づいて、前記第１行動制御部および前記第２行動制御部から、前記ロボットを制御させる行動制御部を選択する行動選択ステップと、
を実行させるためのプログラム。
【符号の説明】
【００７０】
１…ロボット、１１…カメラ、１２…マイク、１３…スピーカ、１４…手足、１５…コントローラ、１６…頭部、１７…胴体部、１５１…ＣＰＵ、１５２…ＲＡＭ、１５３…ＲＯＭ、２１０…制御部、２１１…外部刺激情報解析部、２１２…第１行動制御部、２１３…第２行動制御部、２１４…行動選択部、２２０…外部刺激情報取得部、２３０…行動実行部
【図１】
2019058978.tif 000003
【図２】
2019058978.tif 000004
【図３】
2019058978.tif 000005
【図４】
2019058978.tif 000006
【図５】
2019058978.tif 000007
【図６】
2019058978.tif 000008
【図７】
2019058978.tif 000009