(57)【要約】  【構成】コミュニケーションロボット用開発支援装置では、自律行動するコミュニケーションロボットと人間とのインタラクション時の各種センサ出力、実行した行動と結果、音声認識結果などを記録したインタラクションデータから、検索条件を満足する対話場面を抽出する。その対話場面における各種センサ出力に基づいて把握される状況や、実行した行動の履歴や結果、音声認識結果などを視覚化して、そのインタラクションを事後にシーン表示画面１１４上で再現する。また、シーン表示画面１１４における表示を、使用者による時刻指定に従って切り替える。  【効果】ロボットの自律行動に含まれる問題点を簡単に見出すことができる。【選択図】図２０
2006123153.tif 000002
【特許請求の範囲】
【請求項１】
人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコミュニケーションロボット用開発支援装置であって、
対話場面の再現区間における前記情報を前記記憶手段から読み出す読出し手段、および
前記読出し手段によって読み出された前記対話場面の前記センサ出力および実行した行動に関する情報を視覚化して表示する表示手段を備える、コミュニケーションロボット用開発支援装置。
【請求項２】
前記記憶手段に記憶された情報は、前記コミュニケーションロボットの音声認識結果に関する情報をさらに含み、
前記表示手段は、前記対話場面の前記音声認識結果をさらに表示する、請求項１記載のコミュニケーションロボット用開発支援装置。
【請求項３】
ユーザの入力に応じて前記対話場面の再現区間における時刻を指定する時刻指定手段をさらに備え、
前記表示手段は、前記時刻指定手段によって時刻が指定されたとき、当該時刻における情報を視覚化して表示する、請求項１または２記載のコミュニケーションロボット用開発支援装置。
【請求項４】
ユーザによって入力された条件に基づいて前記記憶手段を検索して当該条件に対応する前記対話場面の再現区間を抽出する抽出手段をさらに備える、請求項１ないし３のいずれかに記載のコミュニケーションロボット用開発支援装置。
【請求項５】
人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコンピュータを、
対話場面の再現区間における前記情報を前記記憶手段から読み出す読出し手段、および
前記読出し手段によって読み出された前記対話場面の前記センサ出力および実行した行動に関する情報を視覚化して表示する表示手段として機能させる、コミュニケーションロボット用開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コミュニケーションロボット用開発支援装置および開発支援プログラムに関し、特にたとえば、自律行動するコミュニケーションロボットの制御プログラムの誤りや不備を発見するためのコミュニケーションロボット用開発支援装置および開発支援プログラムに関する。
【背景技術】
【０００２】
たとえば本件出願人による特許文献１には、コミュニケーションロボットに備えられる個々の行動を実行するためのプログラムである行動モジュール間の関係性を視覚化する技術が開示されている。この技術では、行動モジュール間の関係を直感的に把握することができるので、たとえば自律的な行動のための規則の作成・編集等を適切に行えるようになっている。また、その後に実際にロボットを動作させて、その編集等の適否を確かめることができる。
【特許文献１】特開２００４−１１４２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このようなコミュニケーションロボットと人間との実際の対話行動に基づいて、ロボットの制御プログラムをデバッグしようとする場合には、動作対象となる人間の動作は、常に一定にすることができず、行動の実行の度に人間の動作にはばらつきが生じるため、行動プログラムの問題点を見つけるのは容易ではなかった。
【０００４】
それゆえに、この発明の主たる目的は、コミュニケーションロボットの自律的な行動に含まれる問題点を簡単に見出すことができる、コミュニケーションロボット用開発支援装置および開発支援プログラムを提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明は、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコミュニケーションロボット用開発支援装置であって、対話場面の再現区間における情報を記憶手段から読み出す読出し手段、および読出し手段によって読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する表示手段を備える、コミュニケーションロボット用開発支援装置である。
【０００６】
請求項１の発明では、コミュニケーションロボット用開発支援装置は記憶手段を含み、記憶手段には、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報が時刻に関連付けて記憶されている。たとえば、実施例では、センサは、コミュニケーションロボットに設けられるセンサ、および人間に装着されるセンサ、ならびに環境に設置されるセンサを含む。読出し手段は、対話場面の再現区間における情報を記憶手段から読み出す。たとえば、実施例では、再現区間は対話場面の開始時刻と終了時刻によって示され、この開始時刻から終了時刻までの対話場面に対応する情報が読み出される。表示手段は、読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する。つまり、センサによって取得されたインタラクションの事象や、インタラクションにおけるセンサの出力の履歴などの情報が、実行しているロボットの行動とともに視覚化されて表示される。したがって、インタラクションを事後に視覚化して再現することができるので、ロボットのたとえば自律的な行動に含まれる問題点を簡単に見出すことが可能になる。
【０００７】
請求項２の発明は、請求項１の発明に従属し、記憶手段に記憶された情報は、コミュニケーションロボットの音声認識結果に関する情報をさらに含み、表示手段は、対話場面の音声認識結果をさらに表示する。
【０００８】
請求項２の発明では、さらに音声認識の結果を表示することができる。したがって、ロボットがたとえば自律的な行動の意思決定に用いた中間の情報を含めて表示できるので、問題点をさらに簡単に見出すことが可能になる。
【０００９】
請求項３の発明は、請求項１または２の発明に従属し、ユーザの入力に応じて対話場面の再現区間における時刻を指定する時刻指定手段をさらに備え、表示手段は、時刻指定手段によって時刻が指定されたとき、当該時刻における情報を視覚化して表示する。
【００１０】
請求項３の発明では、ユーザの入力に応じて指定された時刻における情報が視覚化されて表示される。したがって、たとえば問題点の前後にわたって詳細に調査をすることができ、対話行動のデバッグタイミングを簡単に指定することができる。
【００１１】
請求項４の発明は、請求項１ないし３の発明のいずれかに従属し、ユーザによって入力された条件に基づいて記憶手段を検索して当該条件に対応する対話場面の再現区間を抽出する抽出手段をさらに備える。
【００１２】
請求項４の発明では、入力される検索条件に対応する対話場面の再現区間を抽出することができる。したがって、適切な条件入力をすることによって、所望の対話場面を抽出することができるので、より簡単に問題点を見つけ出すことが可能になる。
【００１３】
請求項５の発明は、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコンピュータを、対話場面の再現区間における情報を記憶手段から読み出す読出し手段、および読出し手段によって読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する表示手段として機能させる、コミュニケーションロボット用開発支援プログラムである。
【００１４】
請求項５の発明では、上述の請求項１の発明に対応するプログラムであり、請求項１の発明と同様に、インタラクションを事後に再現できるので、ロボットのたとえば自律的な行動に含まれる問題点を簡単に見出すことが可能になる。
【発明の効果】
【００１５】
この発明によれば、記録しておいた対話中のコミュニケーションロボットの状態や相手との間で起きた事象を、後に視覚化によって再現することができるので、コミュニケーションロボットの自律的な行動に含まれる問題点を簡単に見出すことができる。
【００１６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１７】
図１を参照して、この実施例のコミュニケーションロボット用開発支援装置（以下、単に「開発支援装置」という。）１０は、コミュニケーションロボット（以下、単に「ロボット」という。）１２（図４）の開発を支援するためのものである。より具体的には、開発支援装置１０は、ロボット１２の自律的な対話行動を実行するプログラムに含まれる誤りや不備などの問題点を発見するためのものであり、対話行動を修正するための手掛かりを作り出す。
【００１８】
開発支援装置１０は、パーソナルコンピュータやワークステーション等のコンピュータであり、図示は省略されるがＣＰＵを含む。ＣＰＵには、ＲＯＭ、ＨＤＤおよびＲＡＭ等のようなメモリ、マウスまたはキーボード等のような入力装置、ＬＣＤまたはＣＲＴ等のような表示装置等がバス等を介して接続される。また、開発支援装置１０には、インタラクションデータベース（ＤＢ）１４が接続される。なお、インタラクションＤＢ１４は開発支援装置１０の内部に設けられてもよい。
【００１９】
開発支援装置１０のメモリのたとえばＨＤＤには、当該コンピュータを開発支援装置として機能させるための開発支援プログラムおよび必要なデータが予め記憶されている。開発支援装置１０のＣＰＵは、この開発支援プログラムに従って処理を実行する。開発支援プログラムは、たとえばＣＤやＤＶＤ等の各種の情報記憶媒体やインタネット等のネットワーク上のサーバ等から取得されてこのコンピュータのメモリに格納されている。メモリのうちＲＡＭは、ＣＰＵの作業領域またはバッファ領域として使用され、ＣＰＵの処理の実行によって生成されまたは取得されたデータが一時的に記憶される。
【００２０】
インタラクションＤＢ１４には、ロボット１２と人間１６とのインタラクション（相互作用）を時刻に関連付けて記録した種々のインタラクションデータが予め記憶されている。開発支援装置１０は、このインタラクションＤＢ１４に記憶されているインタラクションデータを視覚化して、表示装置の画面上でそのインタラクションを再現する。詳しくは、インタラクションで起きた事象、ロボット１２の各種センサ履歴、あるいは自律行動の意思決定に用いた中間処理結果等を時系列で表示または再生する。したがって、ロボット１２の開発者等は、記録されたインタラクションを画面上で詳細に確認することができ、ロボット１２の自律的な行動に含まれる問題点を容易に見つけ出すことが可能になる。
【００２１】
まず、このインタラクションデータを取得してインタラクションＤＢ１４に記憶するためのデータ取得システム１８について説明する。
【００２２】
図２には、インタラクションデータを取得する際の概要が示される。たとえば展示室のような所定の空間２０を準備し、この空間２０において、ロボット１２と人間１６とのインタラクションを記録する。この空間２０では、たとえばＸＹ２次元平面座標系が設定されていて、天井や壁の上部等には複数のカメラ（たとえばＣＣＤカメラ）２２がそれぞれ所定の位置に設置される。また、複数のカメラ２２のそれぞれの周囲の所定領域の状況を撮影することができるように、それぞれのカメラ軸が所定の方向に向けられている。つまり、データ取得システム１８では、空間２０内の任意の座標がどのカメラ２２の撮影範囲に含まれるかを把握できるようになっている。なお、図２では、３台のカメラ２２が示されるがカメラ２２の台数は適宜に設定されるのは言うまでもない。
【００２３】
また、空間２０の壁等にはポスタ等の展示物２４が設けられている。展示物２４には、赤外線ＬＥＤタグ（以下、単に「タグ」ともいう。）２６が取り付けられていて、当該タグを示す識別情報を発している。詳しくは、タグ２６は、赤外線ＬＥＤ，駆動回路および内部電池等を含む。タグ２６では、駆動回路によって赤外線ＬＥＤが点滅制御され、当該タグのＩＤ番号が送信される。なお、図２では、１つの展示物２４のみが示されるが、空間２０内においては複数の展示物２４が設けられてよい。
【００２４】
また、人間１６には、１つのカメラ（たとえばＣＣＤカメラ）２８および１つの赤外線カメラ（赤外線センサ）３０が装着される。カメラ２８および赤外線カメラ３０は、たとえば１つの筐体に内蔵されるヘッドセットとして構成されており、人間１６の頭に装着される。カメラ２８および赤外線カメラ３０の両カメラ軸は、頭部に装着されたとき、ともに人間１６のたとえば視線方向に向けられるようになっている。したがって、視線方向に位置するタグ２６の設けられた展示物２４を識別することができるし、当該展示物２４の可視光画像も同時に撮影することができる。カメラ２８および赤外線カメラ３０は、人間１６に背負われたユーザ携帯コンピュータ３２に接続されていて、それぞれで撮影された可視光画像および赤外線画像の映像信号をユーザ携帯コンピュータ３２に出力する。
【００２５】
また、人間１６にもタグ２６がたとえば体の正面の所定の位置に装着される。また、図２では示されないが、ロボット１２にもタグ２６がたとえば体の正面の所定の位置に装着される（図４参照）。したがって、人間１６の視線方向にロボット１２が位置しているとき、ロボット１２を識別することができるし、そのロボット１２の可視光画像も同時に撮影できる。また、後述するように、ロボット１２にも、赤外線カメラ３４および眼カメラ３６がたとえば体の正面の所定の位置に設けられている（図４参照）。したがって、ロボット１２は、その正面に位置する展示物２４または人間（ユーザ）１６をタグ情報に基づいて識別するとともに、その可視光画像も同時に撮影することが可能である。
【００２６】
図３には、データ取得システム１８の電気的な構成の一例を示すブロック図が示される。データ取得システム１８はデータを取得する中央コンピュータ３８を含む。中央コンピュータ１８には複数のカメラ２２が接続されている。また、中央コンピュータ３８は、ユーザ携帯コンピュータ３２およびロボット１２と無線ＬＡＮなどの無線で接続されている。さらに中央コンピュータ３８はインタラクションＤＢ１４と接続されている。
【００２７】
中央コンピュータ３８は、パーソナルコンピュータやワークステーション等のコンピュータであり、ＣＰＵを含む。ＣＰＵには、ＲＯＭ，ＨＤＤおよびＲＡＭ等のメモリがバスを介して接続されている。メモリには、データ取得を実行するためのプログラムおよび必要なデータが記憶されていて、ＣＰＵはこのプログラムに従って処理を実行する。また、ＣＰＵには無線通信装置等が接続されていて、ＣＰＵは、この無線通信装置を介して、ユーザ携帯コンピュータ３２およびロボット１２とデータを送受信する。
【００２８】
カメラ２２は、たとえばＣＣＤカメラであり、周囲の可視光画像を撮影してその映像信号を中央コンピュータ３８に出力する。中央コンピュータ３８は、取得した可視光画像のデータに対して、計測時刻を特定するための時間情報を付加する処理等を行う。
【００２９】
また、カメラ２８も、同様であり、ユーザ視線方向の可視光画像を撮影してその映像信号をユーザ携帯コンピュータ３２に出力する。赤外線カメラ３０は、ユーザ視線方向の赤外線画像を撮影してその映像信号をユーザ携帯コンピュータ３２に出力する。ユーザ携帯コンピュータ３２は、赤外線画像のデータを処理してタグ２６を検出し、検出したタグ２６の点滅状態等からそのＩＤ番号を検出する。ユーザ携帯コンピュータ３２は、取得したタグ２６の識別情報および可視光画像等の各データに対して、検出または計測時刻を特定するための時間情報を付加する処理等を行って、各情報を中央コンピュータ３８へ無線通信装置を介して送信する。
【００３０】
なお、時間的な同期を取る方法は、たとえば、全ての装置がワールドクロックに合わせて計測動作を行ったりしてもよいし、また、各装置が独立に内部クロックを持ち、たとえば中央コンピュータ３８から送信される所定の同期信号を基準にオフセットを調整したりするようにしてもよい。
【００３１】
ロボット１２は、各種センサを有するヒューマノイド型で自律移動型のものであり、身振りおよび音声の少なくとも一方を用いて、人間１６とコミュニケーション行動を実行することができる。たとえば、対話相手１６の存在を検知してその方に顔を向けたり、さらに「こんにちは」と能動的に話しかけたり、また、触られたときにその接触箇所に顔を向けたりする、といった様々なコミュニケーション行動を実行できる。
【００３２】
また、このロボット１２は、自身の視点から空間２０の状況や人間１６の状況等を観測する。そして、検出したタグ２６の識別情報、映像データ、各種センサ出力データ、モジュールデータ、音声認識データ等のインタラクションデータに対して、検出ないし計測時刻を特定するための時間情報を付加して、中央コンピュータ３８に無線によって送信する。
【００３３】
図３および図４を参照して、ロボット１２の一例を詳細に説明する。図４に示すように、ロボット１２は台車４０を含み、この台車４０の下面または側面にはロボット１２を自律移動させる車輪４２が設けられる。車輪４２は車輪モータ４４（図５）によって駆動され、台車４０すなわちロボット１２を前後左右任意の方向に動かすことができる。
【００３４】
なお、図４においては省略するが、台車４０の前面には、衝突センサ４６（図５）が取り付けられ、この衝突センサ４６は台車４０への人や他の障害物の接触を検知する。つまり、ロボット１２の移動中に障害物との接触を検知すると、直ちに車輪４２の駆動を停止してロボット１２の移動を急停止させる。
【００３５】
台車４０の上には、多角形柱のセンサ取付パネル４８が設けられ、このセンサ取付パネル４８の各面には、複数（この実施例では２４個）の超音波距離センサ５０がそれぞれ取り付けられる。この超音波距離センサ５０は、センサ取付パネル４８すなわちロボット１２の周囲の主として人１６等との距離を計測するものである。
【００３６】
また、台車４０の上には、さらに、その下部がセンサ取付パネル４８に囲まれて、ロボット１２の胴体が直立するように設けられる。この胴体は、下部胴体５２と上部胴体５４とによって構成され、下部胴体５２および上部胴体５４は、連結部５６によって互いに連結される。図示は省略するが、連結部５６には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体５４の高さすなわちロボット１２の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ５８（図５）によって駆動される。
【００３７】
上部胴体５４のほぼ中央には、１つの全方位カメラ６０と１つの赤外線カメラ３４と１つのマイク６２とが設けられる。全方位カメラ６０は、ロボット１２の周囲を撮影するものであり、後述する眼カメラ３６とは区別される。この全方位カメラ６０としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。赤外線カメラ３４は、上述の赤外線カメラ３０と同様に、タグ２６の発する赤外線を検出するためのものである。また、マイク６２は、周囲の音、とりわけ人の声を取り込む。なお、これら全方位カメラ６０，赤外線カメラ３４およびマイク６２の設置位置は上部胴体５４に限られず適宜変更され得る。
【００３８】
また、たとえば上部胴体５４の胸部には、当該ロボット１２を識別するためのＩＤ番号を発するタグ２６が取り付けられている。
【００３９】
上部胴体５４の両肩には、それぞれ、肩関節６４Ｒおよび６４Ｌによって、上腕６６Ｒおよび６６Ｌが設けられる。肩関節６４Ｒおよび６４Ｌは、それぞれ、３軸の自由度を有する。すなわち、肩関節６４Ｒは、Ｘ軸、Ｙ軸およびＺ軸のそれぞれの軸廻りにおいて上腕６６Ｒの角度を制御できる。Ｙ軸は、上腕６６Ｒの長手方向（または軸）に平行な軸であり、Ｘ軸およびＺ軸は、そのＹ軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節６４Ｌは、Ａ軸、Ｂ軸およびＣ軸のそれぞれの軸廻りにおいて上腕６６Ｌの角度を制御できる。Ｂ軸は、上腕６６Ｌの長手方向（または軸）に平行な軸であり、Ａ軸およびＣ軸は、そのＢ軸に対して、それぞれ異なる方向から直交する軸である。
【００４０】
また、上腕６６Ｒおよび６６Ｌのそれぞれの先端には、肘関節６８Ｒおよび６８Ｌを介して、前腕７０Ｒおよび７０Ｌが設けられる。肘関節６８Ｒおよび６８Ｌは、それぞれ、Ｗ軸およびＤ軸の軸廻りにおいて、前腕７０Ｒおよび７０Ｌの角度を制御できる。
【００４１】
なお、上腕６６Ｒおよび６６Ｌならびに前腕７０Ｒおよび７０Ｌの変位を制御するＸ軸，Ｙ軸，Ｚ軸，Ｗ軸およびＡ軸，Ｂ軸，Ｃ軸，Ｄ軸では、それぞれ、「０度」がホームポジションであり、このホームポジションでは、図４に示すように、上腕６６Ｒおよび６６Ｌならびに前腕７０Ｒおよび７０Ｌは下方に向けられる。
【００４２】
前腕７０Ｒおよび７０Ｌのそれぞれの先端には、手に相当する球体７２Ｒおよび７２Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【００４３】
また、図示は省略するが、上部胴体５４の肩関節６４Ｒおよび６４Ｌを含む肩の部分や上述の上腕６６Ｒおよび６６Ｌ、前腕７０Ｒおよび７０Ｌならびに球体７２Ｒおよび７２Ｌ、さらに、上部胴体５４の胸の部分、下部胴体５２の腹の部分、頭部７６には、それぞれ、タッチセンサ７４（図５で包括的に示す。）が設けられていて、これらのタッチセンサ７４は、人がロボット１２の当該各部位に触れたかどうかを検知する。
【００４４】
上部胴体５４の中央上方には、首関節７８を介して頭部７６が設けられる。首関節７８は、３軸の自由度を有し、Ｓ軸、Ｔ軸およびＵ軸の各軸廻りに角度制御可能である。Ｓ軸は首から真上（鉛直上向き）に向かう軸であり、Ｔ軸およびＵ軸は、それぞれ、そのＳ軸に対して異なる方向で直交する軸である。頭部７６には、人の口に相当する位置に、スピーカ８０が設けられる。スピーカ８０は、ロボット１２が、それの周辺の人１６に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ８０は、ロボット１２の他の部位、たとえば胴体などに設けられてもよい。
【００４５】
また、頭部７６には、目に相当する位置に眼球部８２Ｒおよび８２Ｌが設けられる。眼球部８２Ｒおよび８２Ｌは、それぞれ眼カメラ３６Ｒおよび３６Ｌを含む。以下、右の眼球部８２Ｒと左の眼球部８２Ｌとをまとめて眼球部８２ということがあり、また、右の眼カメラ３６Ｒと左の眼カメラ３６Ｌとをまとめて眼カメラ３６ということもある。
【００４６】
眼カメラ３６は、ロボット１２に接近した人１６の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ３６としては、上述した全方位カメラ６０と同様のカメラを用いることができる。
【００４７】
たとえば、眼カメラ３６は眼球部８２内に固定され、眼球部８２は眼球支持部（図示せず）を介して頭部７６内の所定位置に取り付けられる。眼球支持部は、２軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部７６に対して設けられる軸であり、α軸は頭部７６の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部７６の正面側（顔）が向く方向に直交する方向の軸である。この実施例では、頭部７６がホームポジションにあるとき、α軸はＳ軸と平行であり、β軸はＵ軸と平行であるように設定される。このような頭部７６において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部８２ないし眼カメラ３６の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。
【００４８】
なお、眼カメラ３６の変位を制御するα軸およびβ軸では、「０度」がホームポジションであり、このホームポジションでは、図４に示すように、眼カメラ３６のカメラ軸は頭部７６の正面側（顔）が向く方向に向けられ、視線は正視状態となる。
【００４９】
図５は、ロボット１２の電気的な構成を示すブロック図であり、この図５を参照して、ロボット１２は、全体を制御するＣＰＵ８４を含む。ＣＰＵ８４は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス８６を介して、メモリ８８、モータ制御ボード９０、センサ入力／出力ボード９２および音声入力／出力ボード９４に接続される。
【００５０】
メモリ８８は、図示は省略するが、ＲＯＭやＨＤＤおよびＲＡＭを含み、ＲＯＭまたはＨＤＤにはロボット１２の制御プログラムが予め記憶され、ＲＡＭはワークメモリやバッファメモリとして用いられる。制御プログラムはたとえば各コミュニケーション行動を実行するためのプログラム（行動モジュール）、インタラクションを観測してデータを取得するためのプログラム、取得したデータに時間情報等を付加するためのプログラム、中央コンピュータ３８との間で通信するためのプログラム等を含む。メモリ８８にはまた、コミュニケーション行動の実行の際にスピーカ８０から発生すべき音声または声の音声データ（音声合成データ）および所定の身振りを提示するための角度データ等を含む身体動作データ等も記憶される。
【００５１】
モータ制御ボード９０は、たとえばＤＳＰで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。具体的には、モータ制御ボード９０は、各モータに設けられるロータリエンコーダ等のような角度センサにも接続されており、各角度センサからの出力にも基づいて各モータの回転を制御する。すなわち、モータ制御ボード９０は、ＣＰＵ８４からの制御データを受け、右眼球部８２Ｒのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図５では、まとめて「右眼球モータ」と示す。）９６の回転角度を制御する。同様に、モータ制御ボード９０は、ＣＰＵ８４からの制御データを受け、左眼球部８２Ｌのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図５では、まとめて「左眼球モータ」と示す。）９８の回転角度を制御する。
【００５２】
また、モータ制御ボード９０は、ＣＰＵ８４からの制御データを受け、右肩関節６４ＲのＸ軸、Ｙ軸およびＺ軸のそれぞれの角度を制御する３つのモータと右肘関節６８ＲのＷ軸の角度を制御する１つのモータとの計４つのモータ（図５では、まとめて「右腕モータ」と示す。）１００の回転角度を調節する。同様に、モータ制御ボード９０は、ＣＰＵ８４からの制御データを受け、左肩関節６４ＬのＡ軸、Ｂ軸およびＣ軸のそれぞれの角度を制御する３つのモータと左肘関節６８ＬのＤ軸の角度を制御する１つのモータとの計４つのモータ（図５では、まとめて「左腕モータ」と示す。）１０２の回転角度を調整する。
【００５３】
さらに、モータ制御ボード９０は、ＣＰＵ８４からの制御データを受け、頭部７６のＳ軸、Ｔ軸およびＵ軸のそれぞれの角度を制御する３つのモータ（図５では、まとめて「頭部モータ」と示す。）１０４の回転角度を制御する。さらにまた、モータ制御ボード９０は、ＣＰＵ８４からの制御データを受け、腰モータ５８および２つの車輪４２をそれぞれ駆動する２つのモータ（図５では、まとめて「車輪モータ」と示す。）４４の回転角度を制御する。
【００５４】
なお、この実施例では、車輪モータ４４を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ４４と同様に、直流モータを用いるようにしてもよい。
【００５５】
センサ入力／出力ボード９２もまた、同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ８４に与える。すなわち、超音波距離センサ５０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード９２を通してＣＰＵ８４に入力される。また、全方位カメラ６０からの映像信号が、必要に応じてこのセンサ入力／出力ボード９２で所定の処理を施された後、ＣＰＵ８４に入力される。眼カメラ３６からの映像信号も、同様にして、ＣＰＵ８４に入力される。
【００５６】
また、赤外線カメラ３４からの映像信号は、このセンサ入力／出力ボード９２で所定の処理を施される。つまり、センサ入力／出力ボード９２は、赤外線画像からタグ２６を検出して、タグ２６の点滅状態からその識別番号を検出する。検出されたタグ２６の識別情報はＣＰＵ８４に入力される。
【００５７】
また、上述した複数のタッチセンサ７４からの信号がセンサ入力／出力ボード９２を介してＣＰＵ８４に与えられる。さらに、上述した衝突センサ４６からの信号も、同様にして、ＣＰＵ８４に与えられる。
【００５８】
音声入力／出力ボード９４もまた、同様に、ＤＳＰで構成され、ＣＰＵ８４から与えられる音声合成データに従った音声または声がスピーカ８０から出力される。また、マイク６２からの音声入力が、音声入力／出力ボード９４を介してＣＰＵ８４に取り込まれる。
【００５９】
また、ＣＰＵ８４は、バス８６を介して通信ＬＡＮボード１０６に接続される。通信ＬＡＮボード１０６は、ＤＳＰで構成され、ＣＰＵ８４からの送信データを無線通信装置１０８に与えて、無線通信装置１０８から送信データを、図示は省略するが、たとえば無線ＬＡＮのようなネットワークを介して中央コンピュータ３８に送信させる。また、通信ＬＡＮボード１０６は、無線通信装置１０８を介してデータを受信し、受信したデータをＣＰＵ８４に与える。
【００６０】
このロボット１２は人間と多様なコミュニケーション行動を取るために、様々な状況における多数の相互作用的な行動を備えるようにされる。このような各行動を実現するためのプログラムはモジュール化されており、「行動モジュール」として実行される。また、各行動の実行順序が規則として多数規定される。つまり、ロボット１０は行動モジュールを順次実行し、その行動モジュールの実行順序は規則によって導かれる。
【００６１】
行動モジュールは、図６に示すように、前提条件部，指示部および認識部を含む。行動モジュールを実行する際には、まず、前提条件部を実行することによって、ロボット１２は、その行動モジュールが実行可能な状況であるかどうかを確認する。たとえば、天気情報をインタネットから検索することによって天気についての行動を取ることを実現する行動モジュールは、ロボット１２がインタネット接続可能でない場合には、実行可能ではなく、前提条件を満足しない。前提条件を満足する場合には、次に指示部を実行する。これにより、ロボット１２は人間と相互作用する行動を取り、具体的には発声および身ぶり等を用いて所定の行動を人間に提示する。人間１６はこのようなロボット１２の行動に対して何らかの反応をするであろう。たとえば、握手の行動モジュールでは、ロボット１２は「握手しよう」と言ってその手を差し出す。この場合、その人がロボット１２の行為に反応するときはその人は自分の手をロボット１２の手の周囲に伸ばすであろう。したがって、認識部は、ロボット１２の提示した行動に対して取ると予想される幾つかの人間の反応（予想１〜予想Ｎ）を認識するように設定されている。このように、行動モジュールは特定の状況を生み出し、その後その特定状況下における人間１６の行動を認識することができる。
【００６２】
その後、ロボット１２は、現在の行動モジュールの実行を終了し、認識結果に相当する結果値（予想１〜予想Ｎ）を記録して、次に実行可能な行動モジュールに遷移する。次に実行可能な行動モジュールは、現在の行動モジュールの結果値および行動モジュール実行の履歴によって決定される。この順次的な遷移は規則によって導かれる。
【００６３】
この規則は、行動モジュールの基本的な実行順序に関する規則であり、短期的な行動の遷移ないし推移が定められている。たとえば数個程度の行動モジュールの繋がりないし関係であり得る。しかし、長期（たとえば一日中）やすべての行動の推移を定めたものではない。規則には、基本的には、ある状況や履歴において、次に実行すべき行動モジュールが規定されている。また、規則は、次の行動モジュールの実行を抑制するための否定の規則も含んでいる。
【００６４】
また、外部から妨害などがあった場合は、反応的遷移および反応的モジュールによって取り扱われる。反応的遷移が現在の状況に対して設定されていて、かつ、対応する次の行動モジュールの前提条件部が満足される場合、ロボット１２は現在の行動モジュールの実行を止めてすぐに次の行動モジュールに遷移する。この反応的な遷移も規則によって導かれる。一方、反応的モジュールが稼動されるときには、ロボット１２は現在の行動モジュールの実行を止めず、これと並行して反応的モジュールを実行する。
【００６５】
ロボット１２は、このような行動モジュールと規則とに基づいて、その自律対話行動を実行する。そして、インタラクションデータ取得処理においては、この行動モジュールが切り替えられたときに、行動モジュールとその結果を記録して、インタラクションデータとして取得する。
【００６６】
このデータ取得システム１８におけるロボット１２のデータ取得処理の動作を、図７のフロー図を用いて説明する。なお、ロボット１２のＣＰＵ８４は、各データの取得を所定周期（たとえば１秒間に３０フレーム等）で行う。時刻データはたとえば図示しない時計回路から取得される。
【００６７】
図７のステップＳ１で、ＣＰＵ８４は、眼カメラ３６から取得される映像情報をセンサ入力／出力ボード９２を介して画像データとして取得して、そのカメラＩＤに関連付けて、時刻とともにメモリ８８に記憶する。次に、ステップＳ３で、各関節のモータの角度の値をモータ制御ボード９０を介して取得して、各モータＩＤに関連付けて、時刻とともにメモリ８８に記憶する。ステップＳ５では、各種センサの反応値をセンサ入力／出力ボード９２を介して取得して、各センサＩＤに関連付けて、時刻とともにメモリ８８に記憶する。また、ステップＳ７では、現在位置座標を算出して、時刻とともにメモリ８８に記憶する。メモリ８８には空間２０におけるロボット１２の前時刻（初期）の位置座標が記憶されているので、車輪モータ４４の角度センサの出力に基づいて、現在位置座標を算出することができる。なお、ロボット１２の現在位置座標は、空間２０に設けられた複数のカメラ２２からの画像データに基づいて、中央コンピュータ３８で算出するようにしてもよい。
【００６８】
続いて、ステップＳ９では、赤外線カメラ３４に反応するタグ２６があるか否かを判断する。つまり、センサ入力／出力ボード９２から、タグ２６の識別情報（タグＩＤ）を取得したか否かを判断する。ステップＳ９で“ＹＥＳ”であれば、ステップＳ１１でタグ情報（タグＩＤ）を取得して、その赤外線カメラＩＤに関連付けて、時刻とともにメモリ８８に記憶する。なお、ステップＳ９で“ＮＯ”であればそのままステップＳ１３へ進む。
【００６９】
ステップＳ１３では、実行モジュールが切り替わったか否かを判断する。つまり、メモリ８８に記憶されている実行中のモジュールＩＤを示すデータが前時刻から変化したか否かを判断する。ステップＳ１３で“ＹＥＳ”であれば、ステップＳ１５で、前モジュールの結果をメモリ８８から取得するとともに、時刻を取得してメモリ８８に記憶する。そして、ステップＳ１７で、前モジュールの開始時刻をメモリ８８から取得して、前モジュールの結果とその開始時刻とをメモリ８８に記憶する。なお、ステップＳ１３で“ＮＯ”であればそのままステップＳ１９へ進む。
【００７０】
ステップＳ１９では、音声認識状態に遷移しているか否かを判断する。つまり、メモリ８８に記憶されている音声認識の状態を示すデータが音声認識実行中を示しているか否かを判断する。ステップＳ１９で“ＹＥＳ”であれば、ステップＳ２１で、音声認識結果をメモリ８８から取得して、時刻とともにメモリ８８に記憶する。なお、ステップＳ１９で“ＮＯ”であれば、そのままステップＳ２３へ進む。
【００７１】
続いて、ステップＳ２３では、メモリ８８に記憶した各取得データ（インタラクションデータ）を通信ＬＡＮボード１０６および無線通信装置１８を介して中央コンピュータ３８に送信する。
【００７２】
そして、ステップＳ２５で、データの取得が終了であるか否かを判断する。たとえば、人間１６との対話行動が行われなくなっているか否かを判断したり、所定のデータ取得時間が経過したか否かを判断したりする。ステップＳ２５で“ＮＯ”であれば、ステップＳ１へ戻って、繰り返し次の検出時刻でのデータ取得を行う。ステップＳ２５で“ＹＥＳ”であれば、この処理を終了する。
【００７３】
また、このデータ取得システム１８における中央コンピュータ３８の動作を、図８のフロー図を用いて説明する。なお、中央コンピュータ３８のＣＰＵは、ロボット１２と同様に、各データの取得を所定周期（たとえば１秒間に３０フレーム等）で行う。時刻データもたとえば図示しない時計回路から取得される。
【００７４】
図８のステップＳ３１で、中央コンピュータ３８のＣＰＵは、複数のカメラ２２から取得される映像情報を画像データとして取得して、カメラＩＤに関連付けて、時刻とともにＲＡＭに記録する。そして、所定時間（たとえば１分間程度）のデータを得たときに、カメラＩＤごとに１つのビデオデータファイルにして、インタラクションＤＢ１４に記録する。なお、ファイル化するときに、当該ビデオデータに収められる画像データの開始時刻と終了時刻とを検出して、ビデオデータに付与しておく。
【００７５】
次に、ステップＳ３３で、ロボット１２からデータを受信したか否かを判断し、“ＹＥＳ”であれば、ステップＳ３５で、受信データから眼カメラ３６の映像情報を取得してＲＡＭに記憶する。この眼カメラ３６の画像データは、ロボット１２でカメラＩＤの情報と時刻の情報とが付与されている。したがって、中央コンピュータ３８では、上述のカメラ２２の画像データと同様にして、所定時間（たとえば１分間程度）のデータを得たときに、カメラＩＤごとに１つのビデオデータファイルにして、インタラクションＤＢ１４に記録する。
【００７６】
続いて、ステップＳ３７で受信データから各モータの角度の値と時刻とを取得してＲＡＭに記憶する。そして、計測時刻ごとに、各モータＩＤとその角度データと関連付けたモータデータをインタラクションＤＢ１４に記録する。
【００７７】
また、ステップＳ３９で、受信データから各センサの反応値と時刻とを取得して、ＲＡＭに記憶する。そして、計測時刻ごとに、各センサＩＤとその出力値データとを関連付けたセンサデータをインタラクションＤＢ１４に記録する。
【００７８】
ステップＳ４１では、受信データからロボット１２の現在位置と時刻とを取得してＲＡＭに記憶する。そして、計測時刻とその位置座標データとを関連付けた位置データをインタラクションＤＢ１４に記録する。
【００７９】
また、ステップＳ４３では、受信データにタグ情報が含まれる場合、受信データからタグ情報と時刻とを取得してＲＡＭに記憶する。そして、赤外線カメラＩＤごとに、計測時刻とタグＩＤとを関連付けたタグデータをインタラクションＤＢ１４に記録する。
【００８０】
また、ステップＳ４５では、受信データにモジュールデータが含まれる場合、受信データから前モジュールとその結果と開始時刻とを取得してＲＡＭに記憶する。そして、検出時刻（開始時刻）と前モジュール名（モジュールＩＤ）とその結果とを関連付けたモジュールデータをインタラクションＤＢ１４に記録する。
【００８１】
また、ステップＳ４７では、受信データに音声認識データが含まれる場合、受信データから音声認識データと時刻とを取得してＲＡＭに記憶する。そして、検出時刻と音声認識結果とを関連付けた音声認識データをインタラクションＤＢ１４に記録する。なお、ステップＳ３３“ＮＯ”であれば、つまり、ロボット１２からデータを受信できなかった場合には、そのままステップＳ４９へ進む。
【００８２】
ステップＳ４９では、ユーザ携帯コンピュータ３２からデータを受信したか否かを判断する。ステップＳ４９で“ＹＥＳ”であれば、ステップＳ５１で、受信データからカメラ２８の映像情報を取得してＲＡＭに記憶する。このカメラ２８の画像データは、ロボット１２の場合と同じように、ユーザ携帯コンピュータ３２のＣＰＵによって、カメラＩＤの情報と時刻の情報とが付与されている。したがって、中央コンピュータ３８では、上述のカメラ２２の画像データの場合と同様にして、所定時間（たとえば１分間程度）のデータを得たときに、カメラＩＤごとに１つのビデオデータファイルにして、インタラクションＤＢ１４に記録する。
【００８３】
また、ステップＳ５３では、受信データにタグ情報が含まれる場合、受信データからタグ情報と時刻とを取得してＲＡＭに記憶する。そして、赤外線カメラＩＤごとに、計測時刻とタグＩＤとを関連付けたタグデータをインタラクションＤＢ１４に記録する。なお、ステップＳ４９で“ＮＯ”であれば、そのままステップＳ５５へ進む。
【００８４】
ステップＳ５５では、ロボット１２はまだ作動しているか否かを判断する。ステップＳ５５で“ＮＯ”であれば、つまり、たとえば、ロボット１２からデータを受信しなくなった場合、所定のデータ取得時間が経過した場合等には、この処理を終了する。一方、ステップＳ５５で“ＹＥＳ”であれば、ステップＳ３１へ戻って繰り返し次の検出時刻でのデータ取得を行う。
【００８５】
なお、ユーザ携帯コンピュータ３２では、ロボット１２と同様にして、データ取得と送信とが処理される。たとえば、カメラ２８から取得される映像情報は、そのカメラＩＤに関連付けて時刻とともに記憶される。また、赤外線カメラ３０に反応するタグ２６があるか否かを判断し、タグＩＤを検出した場合には、タグ情報（タグＩＤ）を取得して、その赤外線カメラＩＤに関連付けて、時刻とともに記憶する。そして、記憶したデータを中央コンピュータ３８へ送信する。
【００８６】
このようにして、データ取得システム１８によって、各種のインタラクションデータが取得されてインタラクションＤＢ１４に記録される。
【００８７】
図９には、インタラクションＤＢ１４に記憶されるインタラクションデータのうちビデオデータの内容が示される。ビデオデータは、たとえばカメラＩＤ（図９ではCAM001）ごとに記憶されている。そして、各ビデオデータが、その開始時刻および終了時刻に関連付けて記憶されている。カメラＩＤは、この実施例では、ロボット１２の２つの眼カメラ３６、環境（空間２０）に設置される複数のカメラ２２、およびユーザ携帯コンピュータ３２に関連して設けられるカメラ２８の識別情報を含む。
【００８８】
なお、この実施例では、ロボット１２の全方位カメラ６０から取得される画像データを記録するようにしていないが、この全方位画像データを展開した画像データに基づくビデオデータをインタラクションＤＢ１４に記録するようにしてもよい。
【００８９】
図１０には、インタラクションＤＢ１４に記憶されるモータデータの内容が示される。モータデータは、たとえば計測時刻（検出時刻）ｔごとに記憶されている。そして、各モータデータは、各モータＩＤに関連付けられたその角度データを含む。モータＩＤは、この実施例では、右腕モータ１００の４つのモータ、左腕モータ１０２の４つのモータ、頭部モータ１０４の３つのモータの識別情報を含む。
【００９０】
図１１には、インタラクションＤＢ１４に記憶されるセンサデータの内容が示される。センサデータは、たとえば、計測時刻ｔごとに記憶されている。そして、各センサデータは、各センサＩＤに関連付けられたそのセンサ出力データを含む。この実施例では、センサＩＤは、超音波距離センサ５０（２４個）、タッチセンサ７４（１１部位）の識別情報を含む。
【００９１】
図１２には、インタラクションＤＢ１４に記憶される位置データの内容が示される。位置データとしては、計測時刻ｔに関連付けられて位置座標データが記憶されている。
【００９２】
図１３には、インタラクションＤＢ１４に記憶されるタグデータの内容が示される。タグデータは、たとえば赤外線カメラＩＤ（図１３ではIRC001）ごとに記憶されている。そして、検出時刻に関連付けてタグＩＤが記憶されている。赤外線カメラＩＤは、この実施例では、ロボット１２の赤外線カメラ３４、およびユーザ携帯コンピュータ３２に関連して設けられる赤外線カメラ３０の識別情報を含む。
【００９３】
図１４には、インタラクションＤＢ１４に記憶されるモジュールデータの内容が示される。モジュールデータとしては、検出時刻に関連付けて、前モジュール名（モジュールＩＤ）およびその結果が記憶されている。
【００９４】
図１５には、インタラクションＤＢ１４に記憶される音声認識データの内容が示される。音声認識データとしては、検出時刻に関連付けて、音声認識結果データ（認識語ＩＤ）が記憶されている。
【００９５】
このようなインタラクションデータが記憶されたインタラクションＤＢ１４を用いて、図１の開発支援装置１０では、ロボット１２と人１６とのインタラクションで起きた事象や、ロボットのセンサ履歴、自律行動の過程、自律行動の意思決定に用いた中間的な情報などを視覚化して、インタラクションを再現することによって、ロボット１２の自律対話行動を制御するプログラムを修正するための手掛かりを作り出すことができる。
【００９６】
開発支援装置１０のＨＤＤなどのメモリには、図１６に示すようなユーザデータが記憶されている。ユーザデータとしては、ユーザＩＤに関連付けて、ユーザ名を示すデータ（テキストデータまたは画像データ）、当該ユーザ１６に装着されるタグ２６のタグＩＤ、当該ユーザ１６に装着されるユーザ携帯コンピュータ３２に関連して設けられる赤外線カメラ３０の赤外線カメラＩＤ、およびカメラ２８のカメラＩＤ等が記憶されている。
【００９７】
また、開発支援装置１０のＨＤＤなどのメモリには、図１７に示すようなロボットデータも記憶されている。ロボットデータとしては、ロボットＩＤに関連付けて、当該ロボット１２に装着されるタグ２６のタグＩＤ、当該ロボット１２に搭載される赤外線カメラ３４の赤外線カメラＩＤ、および眼カメラ３６のカメラＩＤ等が記憶されている。
【００９８】
この開発支援装置１０では、ロボット１２の開発者等は、インタラクションＤＢ１４を検索することによって、その検索条件に対応する対話場面を抽出して、その場面を視覚化することができる。
【００９９】
図１８には、開発支援装置１０の表示装置に表示される検索画面１１０の一例が示される。この検索画面１１０で、使用者（開発者等）は、マウス等の入力装置を操作して、種々の条件を入力または指定することによって、インタラクションＤＢ１４の検索を行うことができる。具体的には、時刻（日時）、抽出時間ｔ（対話場面として抽出する時間）、検索結果の出力形式（文字表示、サムネイル表示、グラフ表示等）、行動モジュール名（モジュールＩＤ）、センサ種類（およびセンサＩＤ）、センサの反応までの時間、センサの反応値の範囲、ユーザ名（ユーザＩＤ）、展示物２４などのオブジェクト名（オブジェクトＩＤ）、ロボット名（ロボットＩＤ）等を、条件として入力または指定できる。そして、検索ボタンを操作することによって、検索条件に基づいてインタラクションＤＢ１４の検索が行われる。条件に当てはまるデータがある場合には、その対話場面が抽出され、検索結果として抽出された対話場面の選択画面１１２が表示される。
【０１００】
この検索画面１１０で、開発者等は、不都合や問題のあるシーンを見つけたい場合には、問題意識を持って、どのような条件を入力すればその問題となるシーンを得られるかを考えて条件入力を行う必要がある。逆に、うまく行ったシーンを得たい場合には、そのようなシーンを抽出できるような条件を入力する。たとえば、開発者等が、「ロボットに指差しで展示物２４を紹介させる行動を実行させたが、果たして見学者２６はちゃんとその展示物を見てくれただろうか？」という問題意識を持った場合には、開発者等は、モジュールＩＤで指差し動作を指定し、反応までの時間を無限大と指定すればよい。これによって、開発支援装置１０は、指差し動作を行ってから展示物２４を見なかったユーザ２６のシーンを検索し、抽出する。
【０１０１】
図１９には、開発支援装置１０の表示装置に表示される選択画面１１２の一例が示される。図１９では、検索結果として、２つの対話場面がたとえば文字で表示され、それぞれの場面の開始時刻ｔｓおよび終了時刻ｔｅも一緒に表示される。この選択画面１１２で所望の対話場面を選択して決定ボタンを操作することによって、その対話場面の表示が行われる。
【０１０２】
図２０には、開発支援装置１０の表示装置に表示されるシーン表示画面１１４の一例が示される。このシーン表示画面１１４で、選択された対話場面が視覚化され、再現される。基本的には、抽出された対話場面の開始時刻ｔｓから終了時刻ｔｅまでのシーン再現区間における当該場面が再生される。
【０１０３】
シーン表示画面１１４は、タグ状態部１１６を含む。タグ状態部１１６には、インタラクションＤＢ１４のタグデータを利用して、ロボット１２の目の前にいるユーザ１６のタグ反応状況が示される。具体的には、タグ状態部１１６の上下方向が時間軸に相当し、表示部分の中央の横線（たとえば黒色）は現在時刻Ｔ（表示時刻）を示している。左側のたとえば赤色で表示される帯（図２０で斜線表示）は、ロボット１２の赤外線カメラ３４にユーザ１６のタグ２６が反応していた時間を表している。また、この帯の上部には、当該タグ２６を装着しているユーザ１６のユーザ名（図２０ではＡさん）が表示される。この帯の右側のたとえば青色で表示される帯は、ロボット１２に装着されるタグ２６がユーザ１６の赤外線カメラ３０に反応していた時間を表している。この帯は途切れているが、これは反応がなかった時間を表している。また、この右側の青色帯の上部にも、当該赤外線カメラ３０を装着しているユーザ１６の名前が表示され得るが、この図２０では、左側の赤色帯で表されているロボット１２の赤外線カメラ３４で反応しているユーザ１６と同じ人物であるために、表示しないようにしている。このように、赤色帯と青色帯が同一人物に関して表示された場合には、当該人物１６は、ロボット１２と向き合っていることがわかる。
【０１０４】
また、シーン表示画面１１４は、モータ状態・タッチセンサ状態部１１８を含む。モータ状態・タッチセンサ状態部１１８には、インタラクションＤＢ１４のモータデータを利用して、ロボット１２の姿勢がたとえば青色のフレームで表示される。これによって、表示時刻におけるロボット１２の頭部７６や腕などの角度からその姿勢を把握することができる。また、センサデータを利用して、タッチセンサ７４が反応した部位がたとえば赤いフレームで表示される。タッチセンサ７４の部位は、この実施例では、頭、右肩、右上腕、右前腕、右手先、左肩、左上腕、左前腕、左手先、胸、腹である。図２０では、左前腕が赤色フレームで表示されていて、つまり、ロボット１２の左前腕７０Ｌが接触状態にあることがわかる。
【０１０５】
また、シーン表示画面１１４は、映像部１２０を含む。映像部１２０には、インタラクションＤＢ１４のビデオデータを利用して、各カメラからの映像ないし画像が表示される。具体的には、視線部１２０ａには、ロボット１２に設置された眼カメラ３６のビデオデータに基づいて、ロボット１２の視線方向の映像が表示される。周囲部１２０ｂには、環境に設置されたカメラ２２のビデオデータに基づいて、ロボット１２の周囲を撮影した映像が表示される。また、ロボット部１２０ｃには、ユーザ１６に装着されたカメラ２８のビデオデータに基づいて、ロボット１２の様子を撮影した映像が表示される。この映像部１２０では、開発者等は、ロボット１２の目の前の状況、ロボット１２の周囲の状況、ロボット１２自体の状況を、映像ないし画像によって観察することができる。
【０１０６】
また、シーン表示画面１１４は、超音波センサ部１２２を含む。超音波センサ部１２２には、インタラクションＤＢ１４のセンサデータを利用して、超音波距離センサ５０の反応状況が表示される。詳しくは、超音波距離センサ５０のそれぞれの出力値データに基づいて、表示時刻におけるロボット１２の周囲の状態を俯瞰的に表す。超音波センサ部１２２では、その中央にロボット１２を示す図柄が配置され、画面下方向がロボット１２の正面に相当する。また、この画面の端が、実空間２０におけるロボット１２から所定の距離（たとえば５ｍ）に対応する。そして、超音波距離センサ５０の出力値に基づいて、反応のあった位置に対応する画面上の位置に、たとえば黄色の楕円の図柄が表示される。この超音波センサ部１２２では、開発者等は、たとえば障害物あるいは人間１６等がロボット１２の周囲にどのような状態（方向、距離）で存在しているかを把握することができる。
【０１０７】
また、シーン表示画面１１４は、モジュール部１２４を含む。モジュール部１２４には、インタラクションＤＢ１４のモジュールデータを利用して、ロボット１２が以前に実行した行動モジュールの名前（モジュールＩＤ）とその結果、および現在実行中の行動モジュールの名前が表示される。また、シーン再現期間中にモジュールの遷移があった場合には、前回のモジュールの結果が表示され、遷移後のモジュール名が表示される。このモジュール部１２４では、開発者等は、表示時刻までのロボット１２の行動の履歴や、各行動の実行によってロボット１２が認識した人間１６等の反応結果や、それらに基づく現在実行中の行動を把握することができる。
【０１０８】
また、シーン表示画面１１４は、音声認識部１２６を含む。音声認識部１２６には、インタラクションＤＢ１４の音声認識データを利用して、ロボット１２の音声認識結果、すなわち、認識語が文字で表示される。また、その認識語の音声合成データが再生されて、開発支援装置１０の内部または外部に設けられる図示しないスピーカからその音声が出力される。たとえば、音声認識を必要とする行動や、音声認識結果が重要とされるような行動の場合には、その認識結果が自律行動の推移に影響を与える。つまり、たとえば音声認識を上手く行えなかった場合には、人間１６の実際の反応を認識できていないので、人間１６とのインタラクションが成立しなくなるおそれがある。このように、開発者等は、この音声認識部１２６によって、自律行動の意思決定に用いられる情報を確認することができるし、音声認識がうまく行えたのかどうかを目と耳とで確認することができる。
【０１０９】
また、シーン表示画面１１４は、時刻指定部１２８を含む。時刻指定部１２８には、表示時刻を指定可能なスライダ１３０が設けられている。スライダ１３０は、この対話場面の開始時刻ｔｓから終了時刻ｔｅまでの再現区間を示す水平線上に表示されている。開発者等は、マウス等の入力装置で、このスライダ１３０を移動操作することによって、このシーン表示画面１１４で再現されるインタラクションの表示時刻を指定することができる。スライダ１３０によって時刻が指定されたときには、各部１１６−１２８の表示がその指定時刻における状態に切り替えられる。なお、スライダ１３０は、操作されていない場合には、現在の表示時刻を示す位置に移動表示される。開発者等は、たとえば、再生される対話場面において問題があるような状態を見つけたときには、このスライダ１３０で表示時刻を指定することによって、その時刻における状態を詳細に調査することができる。また、問題の時刻の前後を指定することで、問題発生前の状態や問題発生後の状態も仔細に確認することができる。したがって、正確なデバッグタイミングを検出することができる。
【０１１０】
なお、時刻指定は場合によってはその数値を入力することによってなされるようにしてもよい。
【０１１１】
このように、シーン表示画面１１４では、開発者等は、対話相手１６の向き、ロボット１２の姿勢や接触状態、ロボット１２の見ている画像、ロボット１２やその周囲の画像、周囲との離れ具合、あるいは音声認識の結果など、つまり、各種センサの出力の履歴、対話中に起きた事象、自律行動の意思決定に用いた中間処理結果などを、実行されていた行動やその結果あるいは遷移後の行動などとともに確認することができる。このため、自律行動が、どのような状況や認識状態に基づいて実行されていったのかを、事後に簡単に把握することができる。したがって、各情報を個々に確認し、また複数の情報を総合的に勘案しつつ、ロボット１２の自律行動に含まれる問題点、不備、あるいは誤りなどを簡単に見出すことができる。
【０１１２】
なお、この図２０では、シーン表示画面１１４は、タグ状態部１１６、モータ状態・タッチセンサ状態部１１８、映像部１２０、超音波センサ部１２２、モジュール部１２４、音声認識部１２６、および時刻指定部１２８を含んでいたが、たとえば使用者が任意で各描画部の表示・非表示を切り替えるようにしてもよい。また、各描画部の画面上の配置は一例に過ぎず適宜変更される。また、各描画部は、たとえば別々の画面に分けて表示されてもよい。
【０１１３】
この開発支援装置１０の動作を図２１のフロー図に基づいて説明する。図２１の最初のステップＳ７１で、開発支援装置１０のＣＰＵは、メモリから検索画面データを取得して表示装置に図１８に示すような検索画面１１０を表示する。これによって開発者等に条件入力を促す。この検索画面１１０で条件入力がなされて検索ボタンが操作された場合には、ステップＳ７３で、入力情報に基づいて、対話場面抽出処理を実行する。この抽出処理の動作の一例が図２２に示される。
【０１１４】
図２２のステップＳ１０１で、検索画面１１０における条件入力データを取得し、ステップＳ１０３で、条件入力データに基づいてインタラクションＤＢ１４内の検索処理を実行する。この検索処理の動作の一例が図２３に示される。なお、図２３の検索処理は、検索条件として、モジュールとして動作Ａ，センサ種類またはＩＤとしてセンサＢ、反応までの時間ＴＲ以内，抽出時間ｔが入力された場合の処理の一例である。
【０１１５】
図２３のステップＳ１２１で、変数Ｔａに初期値としてゼロを設定し、ステップＳ１２３で、モジュールデータを参照して、時刻Ｔａ以降で動作Ａが行われたシーンがまだ残っているかを判断する。ステップＳ１２３で“ＹＥＳ”であれば、ステップＳ１２５で、動作Ａが行われた当該時刻を変数Ｔａに保存し、ステップＳ１２７で、センサデータを参照して、時刻Ｔａ以降で初めてセンサＢが反応した時刻を検出して、変数Ｔｂに保存する。
【０１１６】
そして、ステップＳ１２９で、動作Ａが行われてからセンサＢが反応するまでの時間（Ｔｂ−Ｔａ）が、入力された反応までの時間値ＴＲよりも大きいか否かを判断する。ステップＳ１２９で“ＮＯ”であれば、つまり、検索条件に当てはまる場合には、ステップＳ１３１で、時刻Ｔａの前後にわたる時間ｔぶんの対話場面を抽出し、ステップＳ１２３へ戻る。また、ステップＳ１２９で“ＹＥＳ”であれば、条件を満足しないのでステップＳ１２３へ戻る。一方、ステップＳ１２３で“ＮＯ”であれば、検索処理を終了し、図２２のステップＳ１０５へ戻る。
【０１１７】
図２２に戻って、ステップＳ１０５では、検索処理の結果、条件に当てはまるインタラクションデータがあるか否かを判断し、“ＹＥＳ”であれば、ステップＳ１０７で、対話場面の開始時刻Ｔｓ，終了時刻Ｔｅを抽出する。たとえば、上述の検索処理からは、対話場面の中心となる時刻Ｔａが返されるので、このＴａと入力された抽出時間ｔとに基づいて、開始時刻Ｔｓと終了時刻Ｔｅとを算出する。そして、ステップＳ１０５へ戻り、条件に当てはまる複数のデータがある場合にはステップＳ１０７を繰り返す。一方、ステップＳ１０５で“ＮＯ”であれば、ステップＳ１０９で、得られたすべての対話場面の開始時刻と終了時刻（Ｔｓ，Ｔｅ）の組をメモリの所定領域に出力して、この対話場面抽出処理を終了し、図２１のステップＳ７５へ戻る。
【０１１８】
図２１に戻って、ステップＳ７５では、対話場面の選択処理を実行する。つまり、選択画面データをメモリから読み出して、抽出された対話場面の組とともに、図１９に示すような選択画面１１２を表示装置に表示する。これにより、開発者等の選択を促す。この選択画面１１２で対話場面が選択されて決定ボタンが操作された場合には、ステップＳ７７で、再現シーンの開始時刻Ｔｓと終了時刻Ｔｅを、選択された対話場面の開始時刻Ｔｓと終了時刻Ｔｅにする。そして、ステップＳ７９で、設定されたシーンの開始時刻Ｔｓと終了時刻Ｔｅとに基づいて、データ読み出し処理を実行する。このデータ読み出し処理の動作は、図２４−図３１に示される。
【０１１９】
図２４には、ロボット１２の赤外線カメラ３４で検出したタグデータを読み出す場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ１４１では、変数Ｔ１に開始時刻Ｔｓを設定し、ステップＳ１４３で、赤外線カメラＩＤがロボット１２の赤外線カメラ３４の識別情報に相当するタグデータを参照して、時刻Ｔ１以降に反応したタグ２６があるか否かを判断する。ステップＳ１４３で“ＮＯ”であれば、ステップＳ１６３へ進む。
【０１２０】
一方、ステップＳ１４３で“ＹＥＳ”であれば、ステップＳ１４５で、当該タグＩＤとＴ１以降で最初に反応した時刻を検出して、当該時刻を新たに変数Ｔ１として保存する。そして、ステップＳ１４７で、Ｔ１以降の上記タグデータを参照して、タグ２６が閾値Σ以上の間隔で反応がないか否かを判断する。ステップＳ１４７で“ＮＯ”であれば、つまり、終了時刻Ｔｅまで反応が途切れていないとみなせる場合には、ステップＳ１４９で、変数Ｔ２に終了時刻Ｔｅを設定し、ステップＳ１５１で、検出したタグＩＤ、Ｔ１、Ｔ２の値を配列Ｖｔａｇに保存する。ステップＳ１５１を終了すると、ステップＳ１６１に進む。
【０１２１】
一方、ステップＳ１４７で“ＹＥＳ”であれば、ステップＳ１５３で、上記タグデータを参照して、最後にタグ２６が反応した時刻、つまり、途切れたときの時刻を検出して、Ｔ２として保存する。そして、ステップＳ１５５で、検出したタグＩＤ、Ｔ１、Ｔ２の値を配列Ｖｔａｇに保存する。
【０１２２】
続いて、ステップＳ１５７で、Ｔ１にＴ２の値を設定し、ステップＳ１５９で、上記タグデータを参照して、Ｔ１以降に同じタグ２６が反応していた期間があるか否かを判断する。ステップＳ１５９で“ＹＥＳ”であれば、その反応期間の開始時刻と終了時刻とを取得すべく、ステップＳ１４５へ戻る。
【０１２３】
一方、ステップＳ１５９で“ＮＯ”であれば、ステップＳ１６１で、上記処理されたタグ２６以外にも区間内に反応したタグ２６があるか否かを判断する。ステップＳ１６１で“ＹＥＳ”であれば、その別のタグ２６の反応時間を検出すべく、ステップＳ１４５へ戻る。一方、ステップＳ１６１で“ＮＯ”であれば、ステップＳ１６３で、保存した配列Ｖｔａｇのデータを返して、この場合の処理を終了する。
【０１２４】
図２５には、人１６の赤外線カメラ３０で検出したタグデータを読み出す場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ１７１では、変数Ｔ３に開始時刻Ｔｓを設定し、ステップＳ１７３で、赤外線カメラＩＤがユーザ１６の赤外線カメラ３０の識別情報に相当するタグデータを参照して、時刻Ｔ３以降にロボット１２のタグ２６が反応していた赤外線カメラ３０があるか否かを判断する。ステップＳ１７３で“ＮＯ”であれば、つまり、いずれのユーザ１６の赤外線カメラ３０のタグデータでもロボット１２のタグ２６のタグＩＤが検出されなかった場合には、ステップＳ１９３へ進む。
【０１２５】
一方、ステップＳ１７３で“ＹＥＳ”であれば、ステップＳ１７５で、当該赤外線カメラＩＤとＴ３以降で最初に反応した時刻を検出して、当該時刻を新たに変数Ｔ３として保存する。そして、ステップＳ１７７で、Ｔ３以降の当該赤外線カメラＩＤのタグデータを参照して、ロボット１２のタグ２６が閾値Σ以上の間隔で反応がないか否かを判断する。ステップＳ１７７で“ＮＯ”であれば、つまり、終了時刻Ｔｅまで反応が途切れていないとみなせる場合には、ステップＳ１７９で、変数Ｔ４に終了時刻Ｔｅを設定し、ステップＳ１８１で、赤外線カメラＩＤ、Ｔ３、Ｔ４の値を配列Ｒｔａｇに保存する。ステップＳ１８１を終了すると、ステップＳ１９１に進む。
【０１２６】
一方、ステップＳ１７７で“ＹＥＳ”であれば、ステップＳ１８３で、上記タグデータを参照して、最後にタグ２６が反応した時刻、つまり、途切れたときの時刻を検出して、Ｔ４として保存する。そして、ステップＳ１８５で、赤外線カメラＩＤ、Ｔ３、Ｔ４の値を配列Ｒｔａｇに保存する。
【０１２７】
続いて、ステップＳ１８７で、Ｔ３にＴ４の値を設定し、ステップＳ１８９で、上記タグデータを参照して、Ｔ３以降に同じ赤外線カメラにロボット１２のタグ２６が反応していた期間があるか否かを判断する。ステップＳ１８９で“ＹＥＳ”であれば、その反応期間の開始時刻と終了時刻とを取得すべく、ステップＳ１７５へ戻る。
【０１２８】
一方、ステップＳ１８９で“ＮＯ”であれば、ステップＳ１９１で、上記赤外線カメラＩＤ以外にも区間内にロボット１２のタグ２６が反応した赤外線カメラＩＤがあるか否かを判断する。ステップＳ１９１で“ＹＥＳ”であれば、その別の赤外線カメラＩＤのタグデータにおけるロボット１２のタグ２６の反応時間を検出すべく、ステップＳ１７５へ戻る。一方、ステップＳ１９１で“ＮＯ”であれば、ステップＳ１９３で、保存した配列Ｒｔａｇのデータを返して、この場合の処理を終了する。
【０１２９】
図２６には、モータデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ２０１では、モータデータを参照して、区間（Ｔｓ，Ｔｅ）内の各単位時間ごとに、モータ角の値（この実施例では１１個）を読み出す。この読み出し時刻は単位時間ごとに進められることになる。続いて、ステップＳ２０３で、当該モータ角の値（１１個）と時刻とを配列Ｍｏｔｏｒに保存する。そして、ステップＳ２０５で、時刻Ｔｅまでモータデータを探査し終わったか否かを判断する。このステップＳ２０５で“ＹＥＳ”と判断されるまで、ステップＳ２０１とＳ２０３を繰り返し、ステップＳ２０５で“ＹＥＳ”であれば、この場合の処理を終了する。
【０１３０】
図２７には、タッチセンサデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ２１１で、センサデータのうちセンサＩＤがタッチセンサ７４のものを参照して、読み出し時刻において、マスク処理されたタッチセンサ７４の値（１個）を取得する。たとえば、反応のないタッチセンサ７４を除外し、反応のあった部位のデータを取得する。続いて、ステップＳ２１３で、その値と時刻とを配列Ｔｏｕｃｈに保存する。そして、ステップＳ２１５で、時刻Ｔｅまでセンサデータを探査し終わったか否かを判断する。このステップＳ２１５で“ＹＥＳ”と判断されるまでステップＳ２１１とＳ２１３を繰り返し、ステップＳ２１５で“ＹＥＳ”であれば、この場合の処理を終了する。
【０１３１】
図２８には、ビデオデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ２２１で、ビデオデータを参照して、シーン再現区間Ｔｓ〜Ｔｅ内のロボット１２の視線方向のビデオデータがあるか否かを判断する。ロボット１２の視線方向のビデオデータは、ロボット１２の眼カメラ３６で撮影されたデータであるので、眼カメラ３６の識別情報を示すカメラＩＤに関連付けられたビデオデータを探索する。また、たとえばネットワークの不具合やハードウェアの故障等の理由によってある時間だけビデオデータが取得されていない事態が考えられるので、このステップＳ２２１ではビデオデータが存在しているか否かを判定するようにしている。
【０１３２】
ステップＳ２２１で“ＹＥＳ”であれば、ステップＳ２２３で、区間内のビデオデータを抽出し、ステップＳ２２５でそれら抽出したビデオデータを連結する。上述のようにビデオデータは、所定の時間（たとえば１分間程度）ごとにファイル化されて記憶されているので、区間が複数のファイルにわたったり、ファイルの途中から始まったりすることになり得るので、区間に該当する部分をフレーム単位で求めて、それらを連結する。そして、ステップＳ２２７で、連結したビデオデータをロボット視線データファイルとしてメモリに保持する。
【０１３３】
ステップＳ２２７を終了し、または、ステップＳ２２１で“ＮＯ”であれば、ステップＳ２２９で、区間内のロボットの周囲を撮影したビデオデータがあるか否かを判断する。ロボット１２の周囲は、インタラクションＤＢ１４の位置データに基づいて把握される。上述のように、環境に設置されるカメラ２２の位置および向きは把握されているので、各カメラ２２で撮影可能な領域の座標を把握することができる。開発支援装置１０のメモリまたはインタラクションＤＢ１４に、各カメラ２２の位置および向きデータ、あるいは各カメラ２２の撮影可能範囲の座標を示すデータを予め登録しておくことによって、区間内におけるロボット１２の周囲を撮影しているカメラ２２を特定することができる。したがって、ステップＳ２２９では、ロボット１２の周囲を撮影していると特定されたカメラ２２の識別情報のビデオデータを参照し、区間内のデータが存在しているか否かを判断する。ステップＳ２２９で“ＹＥＳ”であれば、ステップＳ２３１で区間内のビデオデータを抽出して、ステップＳ２３３でそれらのビデオデータを連結し、ステップＳ２３５で、連結したビデオデータを周囲データファイルとしてメモリに保持する。
【０１３４】
ステップＳ２３５を終了し、またはステップＳ２２９で“ＮＯ”であれば、ステップＳ２３７で、区間内のロボット１２の様子を撮影したビデオデータがあるか否かを判断する。ロボット１２の様子を撮影したビデオデータは、ユーザ１６に装着されるカメラ２８で撮影されたデータであるので、まず、タグデータを参照して、区間内においてロボット１２のタグ２６を検出した赤外線カメラＩＤを検出する。検出された場合、メモリのユーザデータを参照して、その赤外線カメラＩＤを有するユーザ１６のカメラＩＤを検出する。このカメラＩＤに関連付けられたビデオデータがロボット１２の様子を撮影したビデオデータである。そして、このカメラＩＤに関連付けられたビデオデータを参照して、区間内のデータがあるか否かを判断する。ステップＳ２３７で“ＹＥＳ”であれば、ステップＳ２３９で区間内のビデオデータを抽出し、ステップＳ２４１でそれらビデオデータを連結し、ステップＳ２４３で、連結したビデオデータをユーザ視線データファイルとしてメモリに保持する。ステップＳ２４３を終了し、またはステップＳ２３７で“ＮＯ”であれば、この場合の処理を終了する。
【０１３５】
図２９には、超音波センサデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ２５１では、超音波距離センサ５０のセンサＩＤに関連付けられたセンサデータを参照して、区間内の各単位時間ごとに超音波センサの値（この実施例では２４個）を読み出す。この読み出し時刻は単位時間ごとに進められることとなる。続いて、ステップＳ２５３で、当該２４個の値と時刻とを配列ＵＷＳに保存する。そして、ステップＳ２５５で、時刻Ｔｅまで探査し終わったか否かを判断する。このステップＳ２５５で“ＹＥＳ”と判断されるまで、ステップＳ２５１およびＳ２５３を繰り返し、ステップＳ２５５で“ＹＥＳ”であれば、この場合の処理を終了する。
【０１３６】
図３０には、モジュールデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ２６１で、モジュールデータを参照して、区間内において記録されている、実行されたモジュール名（モジュールＩＤ）とその結果等を読み出す。続いて、ステップＳ２６３で、そのモジュールの実行開始時刻、モジュール名、結果を配列Ｍｏｄｕｌｅに保存する。なお、この実施例ではモジュールデータでは実行開始時刻に関連付けてモジュール名とその結果とが記憶されているので、区間内の探査で検出した時刻が開始時刻になっている。そして、ステップＳ２６５で、時刻Ｔｅまで探査し終わったか否かを判断し、“ＮＯ”であればステップＳ２６１に戻る。一方、ステップＳ２６５で“ＹＥＳ”であれば、この場合の処理を終了する。
【０１３７】
図３１には、音声認識データの場合のデータ読み出し処理の動作の一例が示される。まず、ステップＳ２７１で、音声認識データを参照して、区間内に、まだ保存されていない、つまり取得されていない音声認識結果があるか否かを判断する。ステップＳ２７１で“ＹＥＳ”であれば、ステップＳ２７３で、取得した音声認識の結果と時刻とを配列ｓｐｅｅｃｈに保存して、ステップＳ２７１に戻る。ステップＳ２７１で“ＮＯ”であれば、この場合の処理を終了する。
【０１３８】
こうして、図２４−図３１のデータ読み出し処理を終了すると、図２１のステップＳ８１で、再生時刻Ｔにシーン再現区間の開始時刻Ｔｓを設定し、ステップＳ８３で、入力装置からの操作入力データに基づいて、スライダ１３０で時間指定があったか否かを判断する。ステップＳ８３で“ＹＥＳ”であれば、ステップＳ８５で、再生時刻Ｔに、スライダ指定時刻を設定して、ステップＳ９１へ進む。スライダ指定時刻は、場面全区間を示す水平線上におけるスライダ１３０の位置に基づいて算出される。
【０１３９】
一方、ステップＳ８３で“ＮＯ”であれば、ステップＳ８７で、再生時刻Ｔが終了時刻Ｔｅに等しいか否かを判断し、“ＮＯ”であれば、ステップＳ８９で、再生時刻Ｔを単位時間（たとえば１フレーム）進めて、ステップＳ９１へ進む。一方、ステップＳ８７で“ＹＥＳ”であれば、このシーンの再生が終了したので、ステップＳ９３へ進む。
【０１４０】
ステップＳ９１では、再生時刻Ｔにおける描画処理を実行する。この描画処理の動作は、図３２−図３８に示される。
【０１４１】
図３２には、タグ状態部１１６（図２０参照）の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ２８１では、中央に現在時刻Ｔを示す黒い横線を描画する。続いて、ステップＳ２８３で、時刻（Ｔ−ｔ，Ｔ＋ｔ）の範囲で、Ｖｔａｇに有効な値が入っているものがあるか否かを判断する。なお、表示する期間を決めるｔには所定の値が設定される。ステップＳ２８３で“ＹＥＳ”であれば、ステップＳ２８５で、Ｖｔａｇに基づいて、当該範囲内で反応がある時間帯を検出して、その時間帯を赤い帯で描画する。続いて、ステップＳ２８７で、タグＩＤに基づいて、当該帯に対応するタグ２６の所有者１６の名前をユーザデータから読み出して、最上部に表示する。
【０１４２】
ステップＳ２８７を終了し、またはステップＳ２８３で“ＮＯ”であれば、ステップＳ２８９で、時刻（Ｔ−ｔ，Ｔ＋ｔ）の範囲で、Ｒｔａｇに有効な値の入っているものはあるか否かを判断する。ステップＳ２８９で“ＹＥＳ”であれば、ステップＳ２９１で、Ｒｔａｇに基づいて、当該範囲内で、反応がある時間帯を検出し、その時間帯を青い帯で描画する。
【０１４３】
そして、ステップＳ２９３で、描画した帯に対応する赤外線カメラ３０の所有者１６の名前は、既に表示されているか否かを判断する。ステップＳ２９３で“ＮＯ”であれば、当該帯に対応する赤外線カメラ３０の所有者１６の名前を、ユーザデータから読み出して、最上部に表示する。
【０１４４】
一方、ステップＳ２９３で“ＹＥＳ”であれば、そのままステップＳ２９７へ進む。また、ステップＳ２８９で“ＮＯ”であれば、ステップＳ２９７へ進む。
【０１４５】
ステップＳ２９７では、他に描画すべきデータが残っているか否かを判断し、“ＹＥＳ”であれば、ステップＳ２８３へ戻って、その描画すべきデータに関して、描画を行う。一方、ステップＳ２９７で“ＮＯ”であれば、この場合の処理を終了する。
【０１４６】
図３３には、モータ状態・タッチセンサ状態部１１８のうちのモータ状態の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ３１１で、再生時刻Ｔについて、Ｍｏｔｏｒの値を調べて、ステップＳ３１３で、そのＭｏｔｏｒのデータに基づいて、時刻Ｔにおけるロボット１２の姿勢を算出し、青いフレームで表示する。ロボット１２の姿勢に関して、頭の姿勢は頭部モータ１０４の３つの値に基づいて決定される。また、右腕の上腕および前腕の姿勢は右腕モータ１００の４つの値に基づいて決定される。また、左腕の上腕および前腕の姿勢は、左腕モータ１０２の４つの値に基づいて決定される。ステップＳ３１３を終了するとこの場合の処理を終了する。
【０１４７】
図３４には、モータ状態・タッチセンサ状態部１１８のうちのタッチセンサ状態の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ３２１で、再生時刻Ｔについて、Ｔｏｕｃｈの値を調べて、ステップＳ３２３で、そのＴｏｕｃｈのデータに基づいて、時刻Ｔにおける反応していた部位を検出し、赤いフレームで表示する。ステップＳ３２３を終了すると、この場合の処理を終了する。
【０１４８】
図３５には、映像部の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ３３１で、再生時刻Ｔに基づいて、当該時刻に対応するフレームにおけるロボット視線データファイルのビデオデータを表示する。これによって、映像部１２０のうち視線部１２０ａが表示される。また、ステップＳ３３３で、再生時刻Ｔに基づいて、当該時刻に対応するフレームにおける周囲データファイルのビデオデータを表示する。これによって、映像部１２０のうち周囲部１２０ｂが表示される。そして、ステップＳ３３５で、時刻Ｔに基づいて、当該時刻に対応するフレームにおけるユーザ視線データファイルのビデオデータを表示する。これによって、映像部１２０のうちのロボット部１２０ｃが表示される。ステップＳ３３５を終了すると、この場合の処理を終了する。
【０１４９】
図３６には、超音波センサ部１２２の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ３４１で、時刻Ｔに基づいて、ＵＷＳの値を調べて、ステップＳ３４３で、そのＵＷＳのデータの中に閾値Σ２より小さな値があるか否かを判断する。この閾値Σ２は、超音波センサ部１２２の表示領域の端に相当する値が設定されている。つまり、ここでは、超音波センサ部１２２の表示領域内に相当する距離で反応を示す超音波センサのデータがあるかどうかを判定している。ステップＳ３４３で“ＹＥＳ”であれば、ステップＳ３４５で超音波センサのデータに基づく位置に、黄色の楕円を描画する。一方、ステップＳ３４３で“ＮＯ”であれば、そのままステップＳ３４７へ進む。ステップＳ３４７では、超音波センサ部１２２の表示領域の中心部にロボット１２を示す図柄を描画する。このステップＳ３４７を終了すると、この場合の処理を終了する。
【０１５０】
図３７には、モジュール部１２４の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ３６１で、Ｍｏｄｕｌｅに基づいて、時刻Ｔ−ｔから時刻Ｔまでに行われたモジュール名と結果を検出し、検出されたモジュール名とその結果を文字で表示する。続いて、ステップＳ３６３で、Ｍｏｄｕｌｅに基づいて、時刻Ｔで行われているモジュール名を検出して、そのモジュール名を文字で表示する。
【０１５１】
そして、ステップＳ３６５で、Ｍｏｄｕｌｅに基づいて、当該時刻Ｔにおいて、モジュールが遷移したか否かを判断し、“ＹＥＳ”であれば、ステップＳ３６７で、Ｍｏｄｕｌｅに基づいて、遷移前のモジュールの結果を検出して文字で表示し、さらに次に実行するモジュール名を検出して文字で表示する。ステップＳ３６７を終了し、またはステップＳ３６５で“ＮＯ”であれば、この場合の処理を終了する。
【０１５２】
図３８には、音声認識部１２６の場合の時刻Ｔにおける描画処理の動作の一例が示される。まず、ステップＳ３８１で、時刻Ｔに基づいて、ｓｐｅｅｃｈのデータを調べて、ステップＳ３８３で、ロボット１２が時刻Ｔで音声認識状態になっているか否かを判断する。つまり、音声認識結果が記憶されているか否かを判断し、“ＹＥＳ”であれば、ステップＳ３８５で、音声認識結果のデータ（識別情報）に基づいて、当該認識語のテキストデータを、たとえばメモリに記憶される辞書データから取得して、認識語を文字で表示する。そして、ステップＳ３８７で、認識結果の音声合成データをたとえばメモリに記憶される辞書データから取得して、図示しない音声処理回路に与えて図示しないスピーカから当該音声を出力する。ステップＳ３８７を終了し、またはステップＳ３８３で“ＮＯ”であれば、この場合の処理を終了する。
【０１５３】
図３２−図３８の描画処理を終了すると、さらに時刻指定部１２８の描画処理を実行する。この処理の動作は図示は省略するが、再生時刻Ｔに基づいて、その位置にスライダ１３０を描画する処理が行われる。このようにして、図２１のステップＳ９１の処理によって、再生時刻Ｔにおける状態等を表示したシーン表示画面１１４のデータが生成されて、図２０に示したようにそのシーン表示画面１１４が表示装置に表示される。
【０１５４】
続いて、図２１のステップＳ９３では、入力装置からの操作入力データが閲覧終了を指示するものであるか否かを判断し、“ＮＯ”であれば、ステップＳ８３に戻り、“ＹＥＳ”であれば、この処理を終了する。
【０１５５】
この実施例によれば、人間１６とロボット１２とのインタラクションを記録しておき、事後に、そのインタラクションで起きた事象や、ロボット１２のセンサの履歴や、自律行動の意思決定の中間の情報などを、視覚化することによって、再現することができる。したがって、ロボット１２の自律的な行動に含まれる問題点を簡単に見出すことができる。
【０１５６】
また、使用者（開発者）の入力によって表示時刻を指定することができるので、問題点の正確なタイミングを検出することが可能であり、対話行動におけるデバッグタイミングを簡単に指定することができる。
【図面の簡単な説明】
【０１５７】
【図１】この発明の一実施例の開発支援装置の一例を図解図である。
【図２】インタラクションデータを取得するためのデータ取得システムの概要を示す図解図である。
【図３】データ取得システムの一例を示すブロック図である。
【図４】図３に示すコミュニケーションロボットの一例を示す外観図である。
【図５】コミュニケーションロボットの電気的な構成を示すブロック図である。
【図６】行動モジュールの内容を説明するための図解図である。
【図７】コミュニケーションロボットのデータ取得処理の動作の一例を示すフロー図である。
【図８】図３に示す中央コンピュータのデータ取得時の動作の一例を示すフロー図である。
【図９】インタラクションＤＢに記憶されるビデオデータの内容の一例を示す図解図である。
【図１０】インタラクションＤＢに記憶されるモータデータの内容の一例を示す図解図である。
【図１１】インタラクションＤＢに記憶されるセンサデータの内容の一例を示す図解図である。
【図１２】インタラクションＤＢに記憶される位置データの内容の一例を示す図解図である。
【図１３】インタラクションＤＢに記憶されるタグデータの内容の一例を示す図解図である。
【図１４】インタラクションＤＢに記憶されるモジュールデータの内容の一例を示す図解図である。
【図１５】インタラクションＤＢに記憶される音声認識データの内容の一例を示す図解図である。
【図１６】図１実施例の開発支援装置のメモリに記憶されるユーザデータの内容の一例を示す図解図である。
【図１７】開発支援装置のメモリに記憶されるロボットデータの内容の一例を示す図解図である。
【図１８】開発支援装置で表示される検索画面の一例を示す図解図である。
【図１９】開発支援装置で表示される選択画面の一例を示す図解図である。
【図２０】開発支援装置で表示されるシーン表示画面の一例を示す図解図である。
【図２１】開発支援装置の動作の一例を示すフロー図である。
【図２２】図２１の対話場面抽出処理の動作の一例を示すフロー図である。
【図２３】図２２のデータベース内検索処理の動作の一例を示すフロー図である。
【図２４】図２１のデータ読み出し処理のうちロボットの赤外線カメラで検出されたタグデータの場合の動作の一例を示すフロー図である。
【図２５】図２１のデータ読み出し処理のうちユーザの赤外線カメラで検出されたタグデータの場合の動作の一例を示すフロー図である。
【図２６】図２１のデータ読み出し処理のうちモータデータの場合の動作の一例を示すフロー図である。
【図２７】図２１のデータ読み出し処理のうちタッチセンサデータの場合の動作の一例を示すフロー図である。
【図２８】図２１のデータ読み出し処理のうちビデオデータの場合の動作の一例を示すフロー図である。
【図２９】図２１のデータ読み出し処理のうち超音波センサデータの場合の動作の一例を示すフロー図である。
【図３０】図２１のデータ読み出し処理のうちモジュールデータの場合の動作の一例を示すフロー図である。
【図３１】図２１のデータ読み出し処理のうち音声認識データの場合の動作の一例を示すフロー図である。
【図３２】図２１の時刻Ｔにおける描画処理のうちタグの状態の場合の動作の一例を示すフロー図である。
【図３３】図２１の時刻Ｔにおける描画処理のうちモータの状態の場合の動作の一例を示すフロー図である。
【図３４】図２１の時刻Ｔにおける描画処理のうちタッチセンサの状態の場合の動作の一例を示すフロー図である。
【図３５】図２１の時刻Ｔにおける描画処理のうち映像部の場合の動作の一例を示すフロー図である。
【図３６】図２１の時刻Ｔにおける描画処理のうち超音波センサの場合の動作の一例を示すフロー図である。
【図３７】図２１の時刻Ｔにおける描画処理のうちモジュールの場合の動作の一例を示すフロー図である。
【図３８】図２１の時刻Ｔにおける描画処理のうち音声認識の場合の動作の一例を示すフロー図である。
【符号の説明】
【０１５８】
１０  …開発支援装置
１２  …コミュニケーションロボット
１４  …インタラクションＤＢ
１６  …人間
１８  …データ取得システム
２２，２８  …カメラ
２６  …赤外線ＬＥＤタグ
３０，３４  …赤外線カメラ
３６  …眼カメラ
５０  …超音波距離センサ
７４  …タッチセンサ
８４  …ＣＰＵ
８８  …メモリ
９０  …モータ制御ボード
９２  …センサ入力／出力ボード
９４  …音声入力／出力ボード
１００  …右腕モータ
１０２  …左腕モータ
１０４  …頭部モータ
１１４  …シーン表示画面
１１６  …タグ状態部
１１８  …モータ状態・タッチセンサ状態部
１２０  …映像部
１２２  …超音波センサ部
１２４  …モジュール部
１２６  …音声認識部
１２８  …時刻指定部
【図１】
2006123153.tif 000003
【図２】
2006123153.tif 000004
【図３】
2006123153.tif 000005
【図４】
2006123153.tif 000006
【図５】
2006123153.tif 000007
【図６】
2006123153.tif 000008
【図７】
2006123153.tif 000009
【図８】
2006123153.tif 000010
【図９】
2006123153.tif 000011
【図１０】
2006123153.tif 000012
【図１１】
2006123153.tif 000013
【図１２】
2006123153.tif 000014
【図１３】
2006123153.tif 000015
【図１４】
2006123153.tif 000016
【図１５】
2006123153.tif 000017
【図１６】
2006123153.tif 000018
【図１７】
2006123153.tif 000019
【図１８】
2006123153.tif 000020
【図１９】
2006123153.tif 000021
【図２０】
2006123153.tif 000022
【図２１】
2006123153.tif 000023
【図２２】
2006123153.tif 000024
【図２３】
2006123153.tif 000025
【図２４】
2006123153.tif 000026
【図２５】
2006123153.tif 000027
【図２６】
2006123153.tif 000028
【図２７】
2006123153.tif 000029
【図２８】
2006123153.tif 000030
【図２９】
2006123153.tif 000031
【図３０】
2006123153.tif 000032
【図３１】
2006123153.tif 000033
【図３２】
2006123153.tif 000034
【図３３】
2006123153.tif 000035
【図３４】
2006123153.tif 000036
【図３５】
2006123153.tif 000037
【図３６】
2006123153.tif 000038
【図３７】
2006123153.tif 000039
【図３８】
2006123153.tif 000040