コミュニケーションロボット用開発支援装置および開発支援プログラム
【構成】コミュニケーションロボット用開発支援装置では、自律行動するコミュニケーションロボットと人間とのインタラクション時の各種センサ出力、実行した行動と結果、音声認識結果などを記録したインタラクションデータから、検索条件を満足する対話場面を抽出する。その対話場面における各種センサ出力に基づいて把握される状況や、実行した行動の履歴や結果、音声認識結果などを視覚化して、そのインタラクションを事後にシーン表示画面114上で再現する。また、シーン表示画面114における表示を、使用者による時刻指定に従って切り替える。
【効果】ロボットの自律行動に含まれる問題点を簡単に見出すことができる。
【効果】ロボットの自律行動に含まれる問題点を簡単に見出すことができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、コミュニケーションロボット用開発支援装置および開発支援プログラムに関し、特にたとえば、自律行動するコミュニケーションロボットの制御プログラムの誤りや不備を発見するためのコミュニケーションロボット用開発支援装置および開発支援プログラムに関する。
【背景技術】
【0002】
たとえば本件出願人による特許文献1には、コミュニケーションロボットに備えられる個々の行動を実行するためのプログラムである行動モジュール間の関係性を視覚化する技術が開示されている。この技術では、行動モジュール間の関係を直感的に把握することができるので、たとえば自律的な行動のための規則の作成・編集等を適切に行えるようになっている。また、その後に実際にロボットを動作させて、その編集等の適否を確かめることができる。
【特許文献1】特開2004−114242号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
このようなコミュニケーションロボットと人間との実際の対話行動に基づいて、ロボットの制御プログラムをデバッグしようとする場合には、動作対象となる人間の動作は、常に一定にすることができず、行動の実行の度に人間の動作にはばらつきが生じるため、行動プログラムの問題点を見つけるのは容易ではなかった。
【0004】
それゆえに、この発明の主たる目的は、コミュニケーションロボットの自律的な行動に含まれる問題点を簡単に見出すことができる、コミュニケーションロボット用開発支援装置および開発支援プログラムを提供することである。
【課題を解決するための手段】
【0005】
請求項1の発明は、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコミュニケーションロボット用開発支援装置であって、対話場面の再現区間における情報を記憶手段から読み出す読出し手段、および読出し手段によって読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する表示手段を備える、コミュニケーションロボット用開発支援装置である。
【0006】
請求項1の発明では、コミュニケーションロボット用開発支援装置は記憶手段を含み、記憶手段には、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報が時刻に関連付けて記憶されている。たとえば、実施例では、センサは、コミュニケーションロボットに設けられるセンサ、および人間に装着されるセンサ、ならびに環境に設置されるセンサを含む。読出し手段は、対話場面の再現区間における情報を記憶手段から読み出す。たとえば、実施例では、再現区間は対話場面の開始時刻と終了時刻によって示され、この開始時刻から終了時刻までの対話場面に対応する情報が読み出される。表示手段は、読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する。つまり、センサによって取得されたインタラクションの事象や、インタラクションにおけるセンサの出力の履歴などの情報が、実行しているロボットの行動とともに視覚化されて表示される。したがって、インタラクションを事後に視覚化して再現することができるので、ロボットのたとえば自律的な行動に含まれる問題点を簡単に見出すことが可能になる。
【0007】
請求項2の発明は、請求項1の発明に従属し、記憶手段に記憶された情報は、コミュニケーションロボットの音声認識結果に関する情報をさらに含み、表示手段は、対話場面の音声認識結果をさらに表示する。
【0008】
請求項2の発明では、さらに音声認識の結果を表示することができる。したがって、ロボットがたとえば自律的な行動の意思決定に用いた中間の情報を含めて表示できるので、問題点をさらに簡単に見出すことが可能になる。
【0009】
請求項3の発明は、請求項1または2の発明に従属し、ユーザの入力に応じて対話場面の再現区間における時刻を指定する時刻指定手段をさらに備え、表示手段は、時刻指定手段によって時刻が指定されたとき、当該時刻における情報を視覚化して表示する。
【0010】
請求項3の発明では、ユーザの入力に応じて指定された時刻における情報が視覚化されて表示される。したがって、たとえば問題点の前後にわたって詳細に調査をすることができ、対話行動のデバッグタイミングを簡単に指定することができる。
【0011】
請求項4の発明は、請求項1ないし3の発明のいずれかに従属し、ユーザによって入力された条件に基づいて記憶手段を検索して当該条件に対応する対話場面の再現区間を抽出する抽出手段をさらに備える。
【0012】
請求項4の発明では、入力される検索条件に対応する対話場面の再現区間を抽出することができる。したがって、適切な条件入力をすることによって、所望の対話場面を抽出することができるので、より簡単に問題点を見つけ出すことが可能になる。
【0013】
請求項5の発明は、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコンピュータを、対話場面の再現区間における情報を記憶手段から読み出す読出し手段、および読出し手段によって読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する表示手段として機能させる、コミュニケーションロボット用開発支援プログラムである。
【0014】
請求項5の発明では、上述の請求項1の発明に対応するプログラムであり、請求項1の発明と同様に、インタラクションを事後に再現できるので、ロボットのたとえば自律的な行動に含まれる問題点を簡単に見出すことが可能になる。
【発明の効果】
【0015】
この発明によれば、記録しておいた対話中のコミュニケーションロボットの状態や相手との間で起きた事象を、後に視覚化によって再現することができるので、コミュニケーションロボットの自律的な行動に含まれる問題点を簡単に見出すことができる。
【0016】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0017】
図1を参照して、この実施例のコミュニケーションロボット用開発支援装置(以下、単に「開発支援装置」という。)10は、コミュニケーションロボット(以下、単に「ロボット」という。)12(図4)の開発を支援するためのものである。より具体的には、開発支援装置10は、ロボット12の自律的な対話行動を実行するプログラムに含まれる誤りや不備などの問題点を発見するためのものであり、対話行動を修正するための手掛かりを作り出す。
【0018】
開発支援装置10は、パーソナルコンピュータやワークステーション等のコンピュータであり、図示は省略されるがCPUを含む。CPUには、ROM、HDDおよびRAM等のようなメモリ、マウスまたはキーボード等のような入力装置、LCDまたはCRT等のような表示装置等がバス等を介して接続される。また、開発支援装置10には、インタラクションデータベース(DB)14が接続される。なお、インタラクションDB14は開発支援装置10の内部に設けられてもよい。
【0019】
開発支援装置10のメモリのたとえばHDDには、当該コンピュータを開発支援装置として機能させるための開発支援プログラムおよび必要なデータが予め記憶されている。開発支援装置10のCPUは、この開発支援プログラムに従って処理を実行する。開発支援プログラムは、たとえばCDやDVD等の各種の情報記憶媒体やインタネット等のネットワーク上のサーバ等から取得されてこのコンピュータのメモリに格納されている。メモリのうちRAMは、CPUの作業領域またはバッファ領域として使用され、CPUの処理の実行によって生成されまたは取得されたデータが一時的に記憶される。
【0020】
インタラクションDB14には、ロボット12と人間16とのインタラクション(相互作用)を時刻に関連付けて記録した種々のインタラクションデータが予め記憶されている。開発支援装置10は、このインタラクションDB14に記憶されているインタラクションデータを視覚化して、表示装置の画面上でそのインタラクションを再現する。詳しくは、インタラクションで起きた事象、ロボット12の各種センサ履歴、あるいは自律行動の意思決定に用いた中間処理結果等を時系列で表示または再生する。したがって、ロボット12の開発者等は、記録されたインタラクションを画面上で詳細に確認することができ、ロボット12の自律的な行動に含まれる問題点を容易に見つけ出すことが可能になる。
【0021】
まず、このインタラクションデータを取得してインタラクションDB14に記憶するためのデータ取得システム18について説明する。
【0022】
図2には、インタラクションデータを取得する際の概要が示される。たとえば展示室のような所定の空間20を準備し、この空間20において、ロボット12と人間16とのインタラクションを記録する。この空間20では、たとえばXY2次元平面座標系が設定されていて、天井や壁の上部等には複数のカメラ(たとえばCCDカメラ)22がそれぞれ所定の位置に設置される。また、複数のカメラ22のそれぞれの周囲の所定領域の状況を撮影することができるように、それぞれのカメラ軸が所定の方向に向けられている。つまり、データ取得システム18では、空間20内の任意の座標がどのカメラ22の撮影範囲に含まれるかを把握できるようになっている。なお、図2では、3台のカメラ22が示されるがカメラ22の台数は適宜に設定されるのは言うまでもない。
【0023】
また、空間20の壁等にはポスタ等の展示物24が設けられている。展示物24には、赤外線LEDタグ(以下、単に「タグ」ともいう。)26が取り付けられていて、当該タグを示す識別情報を発している。詳しくは、タグ26は、赤外線LED,駆動回路および内部電池等を含む。タグ26では、駆動回路によって赤外線LEDが点滅制御され、当該タグのID番号が送信される。なお、図2では、1つの展示物24のみが示されるが、空間20内においては複数の展示物24が設けられてよい。
【0024】
また、人間16には、1つのカメラ(たとえばCCDカメラ)28および1つの赤外線カメラ(赤外線センサ)30が装着される。カメラ28および赤外線カメラ30は、たとえば1つの筐体に内蔵されるヘッドセットとして構成されており、人間16の頭に装着される。カメラ28および赤外線カメラ30の両カメラ軸は、頭部に装着されたとき、ともに人間16のたとえば視線方向に向けられるようになっている。したがって、視線方向に位置するタグ26の設けられた展示物24を識別することができるし、当該展示物24の可視光画像も同時に撮影することができる。カメラ28および赤外線カメラ30は、人間16に背負われたユーザ携帯コンピュータ32に接続されていて、それぞれで撮影された可視光画像および赤外線画像の映像信号をユーザ携帯コンピュータ32に出力する。
【0025】
また、人間16にもタグ26がたとえば体の正面の所定の位置に装着される。また、図2では示されないが、ロボット12にもタグ26がたとえば体の正面の所定の位置に装着される(図4参照)。したがって、人間16の視線方向にロボット12が位置しているとき、ロボット12を識別することができるし、そのロボット12の可視光画像も同時に撮影できる。また、後述するように、ロボット12にも、赤外線カメラ34および眼カメラ36がたとえば体の正面の所定の位置に設けられている(図4参照)。したがって、ロボット12は、その正面に位置する展示物24または人間(ユーザ)16をタグ情報に基づいて識別するとともに、その可視光画像も同時に撮影することが可能である。
【0026】
図3には、データ取得システム18の電気的な構成の一例を示すブロック図が示される。データ取得システム18はデータを取得する中央コンピュータ38を含む。中央コンピュータ18には複数のカメラ22が接続されている。また、中央コンピュータ38は、ユーザ携帯コンピュータ32およびロボット12と無線LANなどの無線で接続されている。さらに中央コンピュータ38はインタラクションDB14と接続されている。
【0027】
中央コンピュータ38は、パーソナルコンピュータやワークステーション等のコンピュータであり、CPUを含む。CPUには、ROM,HDDおよびRAM等のメモリがバスを介して接続されている。メモリには、データ取得を実行するためのプログラムおよび必要なデータが記憶されていて、CPUはこのプログラムに従って処理を実行する。また、CPUには無線通信装置等が接続されていて、CPUは、この無線通信装置を介して、ユーザ携帯コンピュータ32およびロボット12とデータを送受信する。
【0028】
カメラ22は、たとえばCCDカメラであり、周囲の可視光画像を撮影してその映像信号を中央コンピュータ38に出力する。中央コンピュータ38は、取得した可視光画像のデータに対して、計測時刻を特定するための時間情報を付加する処理等を行う。
【0029】
また、カメラ28も、同様であり、ユーザ視線方向の可視光画像を撮影してその映像信号をユーザ携帯コンピュータ32に出力する。赤外線カメラ30は、ユーザ視線方向の赤外線画像を撮影してその映像信号をユーザ携帯コンピュータ32に出力する。ユーザ携帯コンピュータ32は、赤外線画像のデータを処理してタグ26を検出し、検出したタグ26の点滅状態等からそのID番号を検出する。ユーザ携帯コンピュータ32は、取得したタグ26の識別情報および可視光画像等の各データに対して、検出または計測時刻を特定するための時間情報を付加する処理等を行って、各情報を中央コンピュータ38へ無線通信装置を介して送信する。
【0030】
なお、時間的な同期を取る方法は、たとえば、全ての装置がワールドクロックに合わせて計測動作を行ったりしてもよいし、また、各装置が独立に内部クロックを持ち、たとえば中央コンピュータ38から送信される所定の同期信号を基準にオフセットを調整したりするようにしてもよい。
【0031】
ロボット12は、各種センサを有するヒューマノイド型で自律移動型のものであり、身振りおよび音声の少なくとも一方を用いて、人間16とコミュニケーション行動を実行することができる。たとえば、対話相手16の存在を検知してその方に顔を向けたり、さらに「こんにちは」と能動的に話しかけたり、また、触られたときにその接触箇所に顔を向けたりする、といった様々なコミュニケーション行動を実行できる。
【0032】
また、このロボット12は、自身の視点から空間20の状況や人間16の状況等を観測する。そして、検出したタグ26の識別情報、映像データ、各種センサ出力データ、モジュールデータ、音声認識データ等のインタラクションデータに対して、検出ないし計測時刻を特定するための時間情報を付加して、中央コンピュータ38に無線によって送信する。
【0033】
図3および図4を参照して、ロボット12の一例を詳細に説明する。図4に示すように、ロボット12は台車40を含み、この台車40の下面または側面にはロボット12を自律移動させる車輪42が設けられる。車輪42は車輪モータ44(図5)によって駆動され、台車40すなわちロボット12を前後左右任意の方向に動かすことができる。
【0034】
なお、図4においては省略するが、台車40の前面には、衝突センサ46(図5)が取り付けられ、この衝突センサ46は台車40への人や他の障害物の接触を検知する。つまり、ロボット12の移動中に障害物との接触を検知すると、直ちに車輪42の駆動を停止してロボット12の移動を急停止させる。
【0035】
台車40の上には、多角形柱のセンサ取付パネル48が設けられ、このセンサ取付パネル48の各面には、複数(この実施例では24個)の超音波距離センサ50がそれぞれ取り付けられる。この超音波距離センサ50は、センサ取付パネル48すなわちロボット12の周囲の主として人16等との距離を計測するものである。
【0036】
また、台車40の上には、さらに、その下部がセンサ取付パネル48に囲まれて、ロボット12の胴体が直立するように設けられる。この胴体は、下部胴体52と上部胴体54とによって構成され、下部胴体52および上部胴体54は、連結部56によって互いに連結される。図示は省略するが、連結部56には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体54の高さすなわちロボット12の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ58(図5)によって駆動される。
【0037】
上部胴体54のほぼ中央には、1つの全方位カメラ60と1つの赤外線カメラ34と1つのマイク62とが設けられる。全方位カメラ60は、ロボット12の周囲を撮影するものであり、後述する眼カメラ36とは区別される。この全方位カメラ60としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。赤外線カメラ34は、上述の赤外線カメラ30と同様に、タグ26の発する赤外線を検出するためのものである。また、マイク62は、周囲の音、とりわけ人の声を取り込む。なお、これら全方位カメラ60,赤外線カメラ34およびマイク62の設置位置は上部胴体54に限られず適宜変更され得る。
【0038】
また、たとえば上部胴体54の胸部には、当該ロボット12を識別するためのID番号を発するタグ26が取り付けられている。
【0039】
上部胴体54の両肩には、それぞれ、肩関節64Rおよび64Lによって、上腕66Rおよび66Lが設けられる。肩関節64Rおよび64Lは、それぞれ、3軸の自由度を有する。すなわち、肩関節64Rは、X軸、Y軸およびZ軸のそれぞれの軸廻りにおいて上腕66Rの角度を制御できる。Y軸は、上腕66Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節64Lは、A軸、B軸およびC軸のそれぞれの軸廻りにおいて上腕66Lの角度を制御できる。B軸は、上腕66Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に対して、それぞれ異なる方向から直交する軸である。
【0040】
また、上腕66Rおよび66Lのそれぞれの先端には、肘関節68Rおよび68Lを介して、前腕70Rおよび70Lが設けられる。肘関節68Rおよび68Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕70Rおよび70Lの角度を制御できる。
【0041】
なお、上腕66Rおよび66Lならびに前腕70Rおよび70Lの変位を制御するX軸,Y軸,Z軸,W軸およびA軸,B軸,C軸,D軸では、それぞれ、「0度」がホームポジションであり、このホームポジションでは、図4に示すように、上腕66Rおよび66Lならびに前腕70Rおよび70Lは下方に向けられる。
【0042】
前腕70Rおよび70Lのそれぞれの先端には、手に相当する球体72Rおよび72Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【0043】
また、図示は省略するが、上部胴体54の肩関節64Rおよび64Lを含む肩の部分や上述の上腕66Rおよび66L、前腕70Rおよび70Lならびに球体72Rおよび72L、さらに、上部胴体54の胸の部分、下部胴体52の腹の部分、頭部76には、それぞれ、タッチセンサ74(図5で包括的に示す。)が設けられていて、これらのタッチセンサ74は、人がロボット12の当該各部位に触れたかどうかを検知する。
【0044】
上部胴体54の中央上方には、首関節78を介して頭部76が設けられる。首関節78は、3軸の自由度を有し、S軸、T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上(鉛直上向き)に向かう軸であり、T軸およびU軸は、それぞれ、そのS軸に対して異なる方向で直交する軸である。頭部76には、人の口に相当する位置に、スピーカ80が設けられる。スピーカ80は、ロボット12が、それの周辺の人16に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ80は、ロボット12の他の部位、たとえば胴体などに設けられてもよい。
【0045】
また、頭部76には、目に相当する位置に眼球部82Rおよび82Lが設けられる。眼球部82Rおよび82Lは、それぞれ眼カメラ36Rおよび36Lを含む。以下、右の眼球部82Rと左の眼球部82Lとをまとめて眼球部82ということがあり、また、右の眼カメラ36Rと左の眼カメラ36Lとをまとめて眼カメラ36ということもある。
【0046】
眼カメラ36は、ロボット12に接近した人16の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ36としては、上述した全方位カメラ60と同様のカメラを用いることができる。
【0047】
たとえば、眼カメラ36は眼球部82内に固定され、眼球部82は眼球支持部(図示せず)を介して頭部76内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部76に対して設けられる軸であり、α軸は頭部76の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部76の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部76がホームポジションにあるとき、α軸はS軸と平行であり、β軸はU軸と平行であるように設定される。このような頭部76において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部82ないし眼カメラ36の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
【0048】
なお、眼カメラ36の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図4に示すように、眼カメラ36のカメラ軸は頭部76の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
【0049】
図5は、ロボット12の電気的な構成を示すブロック図であり、この図5を参照して、ロボット12は、全体を制御するCPU84を含む。CPU84は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス86を介して、メモリ88、モータ制御ボード90、センサ入力/出力ボード92および音声入力/出力ボード94に接続される。
【0050】
メモリ88は、図示は省略するが、ROMやHDDおよびRAMを含み、ROMまたはHDDにはロボット12の制御プログラムが予め記憶され、RAMはワークメモリやバッファメモリとして用いられる。制御プログラムはたとえば各コミュニケーション行動を実行するためのプログラム(行動モジュール)、インタラクションを観測してデータを取得するためのプログラム、取得したデータに時間情報等を付加するためのプログラム、中央コンピュータ38との間で通信するためのプログラム等を含む。メモリ88にはまた、コミュニケーション行動の実行の際にスピーカ80から発生すべき音声または声の音声データ(音声合成データ)および所定の身振りを提示するための角度データ等を含む身体動作データ等も記憶される。
【0051】
モータ制御ボード90は、たとえばDSPで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。具体的には、モータ制御ボード90は、各モータに設けられるロータリエンコーダ等のような角度センサにも接続されており、各角度センサからの出力にも基づいて各モータの回転を制御する。すなわち、モータ制御ボード90は、CPU84からの制御データを受け、右眼球部82Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図5では、まとめて「右眼球モータ」と示す。)96の回転角度を制御する。同様に、モータ制御ボード90は、CPU84からの制御データを受け、左眼球部82Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図5では、まとめて「左眼球モータ」と示す。)98の回転角度を制御する。
【0052】
また、モータ制御ボード90は、CPU84からの制御データを受け、右肩関節64RのX軸、Y軸およびZ軸のそれぞれの角度を制御する3つのモータと右肘関節68RのW軸の角度を制御する1つのモータとの計4つのモータ(図5では、まとめて「右腕モータ」と示す。)100の回転角度を調節する。同様に、モータ制御ボード90は、CPU84からの制御データを受け、左肩関節64LのA軸、B軸およびC軸のそれぞれの角度を制御する3つのモータと左肘関節68LのD軸の角度を制御する1つのモータとの計4つのモータ(図5では、まとめて「左腕モータ」と示す。)102の回転角度を調整する。
【0053】
さらに、モータ制御ボード90は、CPU84からの制御データを受け、頭部76のS軸、T軸およびU軸のそれぞれの角度を制御する3つのモータ(図5では、まとめて「頭部モータ」と示す。)104の回転角度を制御する。さらにまた、モータ制御ボード90は、CPU84からの制御データを受け、腰モータ58および2つの車輪42をそれぞれ駆動する2つのモータ(図5では、まとめて「車輪モータ」と示す。)44の回転角度を制御する。
【0054】
なお、この実施例では、車輪モータ44を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ44と同様に、直流モータを用いるようにしてもよい。
【0055】
センサ入力/出力ボード92もまた、同様に、DSPで構成され、各センサからの信号を取り込んでCPU84に与える。すなわち、超音波距離センサ50のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード92を通してCPU84に入力される。また、全方位カメラ60からの映像信号が、必要に応じてこのセンサ入力/出力ボード92で所定の処理を施された後、CPU84に入力される。眼カメラ36からの映像信号も、同様にして、CPU84に入力される。
【0056】
また、赤外線カメラ34からの映像信号は、このセンサ入力/出力ボード92で所定の処理を施される。つまり、センサ入力/出力ボード92は、赤外線画像からタグ26を検出して、タグ26の点滅状態からその識別番号を検出する。検出されたタグ26の識別情報はCPU84に入力される。
【0057】
また、上述した複数のタッチセンサ74からの信号がセンサ入力/出力ボード92を介してCPU84に与えられる。さらに、上述した衝突センサ46からの信号も、同様にして、CPU84に与えられる。
【0058】
音声入力/出力ボード94もまた、同様に、DSPで構成され、CPU84から与えられる音声合成データに従った音声または声がスピーカ80から出力される。また、マイク62からの音声入力が、音声入力/出力ボード94を介してCPU84に取り込まれる。
【0059】
また、CPU84は、バス86を介して通信LANボード106に接続される。通信LANボード106は、DSPで構成され、CPU84からの送信データを無線通信装置108に与えて、無線通信装置108から送信データを、図示は省略するが、たとえば無線LANのようなネットワークを介して中央コンピュータ38に送信させる。また、通信LANボード106は、無線通信装置108を介してデータを受信し、受信したデータをCPU84に与える。
【0060】
このロボット12は人間と多様なコミュニケーション行動を取るために、様々な状況における多数の相互作用的な行動を備えるようにされる。このような各行動を実現するためのプログラムはモジュール化されており、「行動モジュール」として実行される。また、各行動の実行順序が規則として多数規定される。つまり、ロボット10は行動モジュールを順次実行し、その行動モジュールの実行順序は規則によって導かれる。
【0061】
行動モジュールは、図6に示すように、前提条件部,指示部および認識部を含む。行動モジュールを実行する際には、まず、前提条件部を実行することによって、ロボット12は、その行動モジュールが実行可能な状況であるかどうかを確認する。たとえば、天気情報をインタネットから検索することによって天気についての行動を取ることを実現する行動モジュールは、ロボット12がインタネット接続可能でない場合には、実行可能ではなく、前提条件を満足しない。前提条件を満足する場合には、次に指示部を実行する。これにより、ロボット12は人間と相互作用する行動を取り、具体的には発声および身ぶり等を用いて所定の行動を人間に提示する。人間16はこのようなロボット12の行動に対して何らかの反応をするであろう。たとえば、握手の行動モジュールでは、ロボット12は「握手しよう」と言ってその手を差し出す。この場合、その人がロボット12の行為に反応するときはその人は自分の手をロボット12の手の周囲に伸ばすであろう。したがって、認識部は、ロボット12の提示した行動に対して取ると予想される幾つかの人間の反応(予想1〜予想N)を認識するように設定されている。このように、行動モジュールは特定の状況を生み出し、その後その特定状況下における人間16の行動を認識することができる。
【0062】
その後、ロボット12は、現在の行動モジュールの実行を終了し、認識結果に相当する結果値(予想1〜予想N)を記録して、次に実行可能な行動モジュールに遷移する。次に実行可能な行動モジュールは、現在の行動モジュールの結果値および行動モジュール実行の履歴によって決定される。この順次的な遷移は規則によって導かれる。
【0063】
この規則は、行動モジュールの基本的な実行順序に関する規則であり、短期的な行動の遷移ないし推移が定められている。たとえば数個程度の行動モジュールの繋がりないし関係であり得る。しかし、長期(たとえば一日中)やすべての行動の推移を定めたものではない。規則には、基本的には、ある状況や履歴において、次に実行すべき行動モジュールが規定されている。また、規則は、次の行動モジュールの実行を抑制するための否定の規則も含んでいる。
【0064】
また、外部から妨害などがあった場合は、反応的遷移および反応的モジュールによって取り扱われる。反応的遷移が現在の状況に対して設定されていて、かつ、対応する次の行動モジュールの前提条件部が満足される場合、ロボット12は現在の行動モジュールの実行を止めてすぐに次の行動モジュールに遷移する。この反応的な遷移も規則によって導かれる。一方、反応的モジュールが稼動されるときには、ロボット12は現在の行動モジュールの実行を止めず、これと並行して反応的モジュールを実行する。
【0065】
ロボット12は、このような行動モジュールと規則とに基づいて、その自律対話行動を実行する。そして、インタラクションデータ取得処理においては、この行動モジュールが切り替えられたときに、行動モジュールとその結果を記録して、インタラクションデータとして取得する。
【0066】
このデータ取得システム18におけるロボット12のデータ取得処理の動作を、図7のフロー図を用いて説明する。なお、ロボット12のCPU84は、各データの取得を所定周期(たとえば1秒間に30フレーム等)で行う。時刻データはたとえば図示しない時計回路から取得される。
【0067】
図7のステップS1で、CPU84は、眼カメラ36から取得される映像情報をセンサ入力/出力ボード92を介して画像データとして取得して、そのカメラIDに関連付けて、時刻とともにメモリ88に記憶する。次に、ステップS3で、各関節のモータの角度の値をモータ制御ボード90を介して取得して、各モータIDに関連付けて、時刻とともにメモリ88に記憶する。ステップS5では、各種センサの反応値をセンサ入力/出力ボード92を介して取得して、各センサIDに関連付けて、時刻とともにメモリ88に記憶する。また、ステップS7では、現在位置座標を算出して、時刻とともにメモリ88に記憶する。メモリ88には空間20におけるロボット12の前時刻(初期)の位置座標が記憶されているので、車輪モータ44の角度センサの出力に基づいて、現在位置座標を算出することができる。なお、ロボット12の現在位置座標は、空間20に設けられた複数のカメラ22からの画像データに基づいて、中央コンピュータ38で算出するようにしてもよい。
【0068】
続いて、ステップS9では、赤外線カメラ34に反応するタグ26があるか否かを判断する。つまり、センサ入力/出力ボード92から、タグ26の識別情報(タグID)を取得したか否かを判断する。ステップS9で“YES”であれば、ステップS11でタグ情報(タグID)を取得して、その赤外線カメラIDに関連付けて、時刻とともにメモリ88に記憶する。なお、ステップS9で“NO”であればそのままステップS13へ進む。
【0069】
ステップS13では、実行モジュールが切り替わったか否かを判断する。つまり、メモリ88に記憶されている実行中のモジュールIDを示すデータが前時刻から変化したか否かを判断する。ステップS13で“YES”であれば、ステップS15で、前モジュールの結果をメモリ88から取得するとともに、時刻を取得してメモリ88に記憶する。そして、ステップS17で、前モジュールの開始時刻をメモリ88から取得して、前モジュールの結果とその開始時刻とをメモリ88に記憶する。なお、ステップS13で“NO”であればそのままステップS19へ進む。
【0070】
ステップS19では、音声認識状態に遷移しているか否かを判断する。つまり、メモリ88に記憶されている音声認識の状態を示すデータが音声認識実行中を示しているか否かを判断する。ステップS19で“YES”であれば、ステップS21で、音声認識結果をメモリ88から取得して、時刻とともにメモリ88に記憶する。なお、ステップS19で“NO”であれば、そのままステップS23へ進む。
【0071】
続いて、ステップS23では、メモリ88に記憶した各取得データ(インタラクションデータ)を通信LANボード106および無線通信装置18を介して中央コンピュータ38に送信する。
【0072】
そして、ステップS25で、データの取得が終了であるか否かを判断する。たとえば、人間16との対話行動が行われなくなっているか否かを判断したり、所定のデータ取得時間が経過したか否かを判断したりする。ステップS25で“NO”であれば、ステップS1へ戻って、繰り返し次の検出時刻でのデータ取得を行う。ステップS25で“YES”であれば、この処理を終了する。
【0073】
また、このデータ取得システム18における中央コンピュータ38の動作を、図8のフロー図を用いて説明する。なお、中央コンピュータ38のCPUは、ロボット12と同様に、各データの取得を所定周期(たとえば1秒間に30フレーム等)で行う。時刻データもたとえば図示しない時計回路から取得される。
【0074】
図8のステップS31で、中央コンピュータ38のCPUは、複数のカメラ22から取得される映像情報を画像データとして取得して、カメラIDに関連付けて、時刻とともにRAMに記録する。そして、所定時間(たとえば1分間程度)のデータを得たときに、カメラIDごとに1つのビデオデータファイルにして、インタラクションDB14に記録する。なお、ファイル化するときに、当該ビデオデータに収められる画像データの開始時刻と終了時刻とを検出して、ビデオデータに付与しておく。
【0075】
次に、ステップS33で、ロボット12からデータを受信したか否かを判断し、“YES”であれば、ステップS35で、受信データから眼カメラ36の映像情報を取得してRAMに記憶する。この眼カメラ36の画像データは、ロボット12でカメラIDの情報と時刻の情報とが付与されている。したがって、中央コンピュータ38では、上述のカメラ22の画像データと同様にして、所定時間(たとえば1分間程度)のデータを得たときに、カメラIDごとに1つのビデオデータファイルにして、インタラクションDB14に記録する。
【0076】
続いて、ステップS37で受信データから各モータの角度の値と時刻とを取得してRAMに記憶する。そして、計測時刻ごとに、各モータIDとその角度データと関連付けたモータデータをインタラクションDB14に記録する。
【0077】
また、ステップS39で、受信データから各センサの反応値と時刻とを取得して、RAMに記憶する。そして、計測時刻ごとに、各センサIDとその出力値データとを関連付けたセンサデータをインタラクションDB14に記録する。
【0078】
ステップS41では、受信データからロボット12の現在位置と時刻とを取得してRAMに記憶する。そして、計測時刻とその位置座標データとを関連付けた位置データをインタラクションDB14に記録する。
【0079】
また、ステップS43では、受信データにタグ情報が含まれる場合、受信データからタグ情報と時刻とを取得してRAMに記憶する。そして、赤外線カメラIDごとに、計測時刻とタグIDとを関連付けたタグデータをインタラクションDB14に記録する。
【0080】
また、ステップS45では、受信データにモジュールデータが含まれる場合、受信データから前モジュールとその結果と開始時刻とを取得してRAMに記憶する。そして、検出時刻(開始時刻)と前モジュール名(モジュールID)とその結果とを関連付けたモジュールデータをインタラクションDB14に記録する。
【0081】
また、ステップS47では、受信データに音声認識データが含まれる場合、受信データから音声認識データと時刻とを取得してRAMに記憶する。そして、検出時刻と音声認識結果とを関連付けた音声認識データをインタラクションDB14に記録する。なお、ステップS33“NO”であれば、つまり、ロボット12からデータを受信できなかった場合には、そのままステップS49へ進む。
【0082】
ステップS49では、ユーザ携帯コンピュータ32からデータを受信したか否かを判断する。ステップS49で“YES”であれば、ステップS51で、受信データからカメラ28の映像情報を取得してRAMに記憶する。このカメラ28の画像データは、ロボット12の場合と同じように、ユーザ携帯コンピュータ32のCPUによって、カメラIDの情報と時刻の情報とが付与されている。したがって、中央コンピュータ38では、上述のカメラ22の画像データの場合と同様にして、所定時間(たとえば1分間程度)のデータを得たときに、カメラIDごとに1つのビデオデータファイルにして、インタラクションDB14に記録する。
【0083】
また、ステップS53では、受信データにタグ情報が含まれる場合、受信データからタグ情報と時刻とを取得してRAMに記憶する。そして、赤外線カメラIDごとに、計測時刻とタグIDとを関連付けたタグデータをインタラクションDB14に記録する。なお、ステップS49で“NO”であれば、そのままステップS55へ進む。
【0084】
ステップS55では、ロボット12はまだ作動しているか否かを判断する。ステップS55で“NO”であれば、つまり、たとえば、ロボット12からデータを受信しなくなった場合、所定のデータ取得時間が経過した場合等には、この処理を終了する。一方、ステップS55で“YES”であれば、ステップS31へ戻って繰り返し次の検出時刻でのデータ取得を行う。
【0085】
なお、ユーザ携帯コンピュータ32では、ロボット12と同様にして、データ取得と送信とが処理される。たとえば、カメラ28から取得される映像情報は、そのカメラIDに関連付けて時刻とともに記憶される。また、赤外線カメラ30に反応するタグ26があるか否かを判断し、タグIDを検出した場合には、タグ情報(タグID)を取得して、その赤外線カメラIDに関連付けて、時刻とともに記憶する。そして、記憶したデータを中央コンピュータ38へ送信する。
【0086】
このようにして、データ取得システム18によって、各種のインタラクションデータが取得されてインタラクションDB14に記録される。
【0087】
図9には、インタラクションDB14に記憶されるインタラクションデータのうちビデオデータの内容が示される。ビデオデータは、たとえばカメラID(図9ではCAM001)ごとに記憶されている。そして、各ビデオデータが、その開始時刻および終了時刻に関連付けて記憶されている。カメラIDは、この実施例では、ロボット12の2つの眼カメラ36、環境(空間20)に設置される複数のカメラ22、およびユーザ携帯コンピュータ32に関連して設けられるカメラ28の識別情報を含む。
【0088】
なお、この実施例では、ロボット12の全方位カメラ60から取得される画像データを記録するようにしていないが、この全方位画像データを展開した画像データに基づくビデオデータをインタラクションDB14に記録するようにしてもよい。
【0089】
図10には、インタラクションDB14に記憶されるモータデータの内容が示される。モータデータは、たとえば計測時刻(検出時刻)tごとに記憶されている。そして、各モータデータは、各モータIDに関連付けられたその角度データを含む。モータIDは、この実施例では、右腕モータ100の4つのモータ、左腕モータ102の4つのモータ、頭部モータ104の3つのモータの識別情報を含む。
【0090】
図11には、インタラクションDB14に記憶されるセンサデータの内容が示される。センサデータは、たとえば、計測時刻tごとに記憶されている。そして、各センサデータは、各センサIDに関連付けられたそのセンサ出力データを含む。この実施例では、センサIDは、超音波距離センサ50(24個)、タッチセンサ74(11部位)の識別情報を含む。
【0091】
図12には、インタラクションDB14に記憶される位置データの内容が示される。位置データとしては、計測時刻tに関連付けられて位置座標データが記憶されている。
【0092】
図13には、インタラクションDB14に記憶されるタグデータの内容が示される。タグデータは、たとえば赤外線カメラID(図13ではIRC001)ごとに記憶されている。そして、検出時刻に関連付けてタグIDが記憶されている。赤外線カメラIDは、この実施例では、ロボット12の赤外線カメラ34、およびユーザ携帯コンピュータ32に関連して設けられる赤外線カメラ30の識別情報を含む。
【0093】
図14には、インタラクションDB14に記憶されるモジュールデータの内容が示される。モジュールデータとしては、検出時刻に関連付けて、前モジュール名(モジュールID)およびその結果が記憶されている。
【0094】
図15には、インタラクションDB14に記憶される音声認識データの内容が示される。音声認識データとしては、検出時刻に関連付けて、音声認識結果データ(認識語ID)が記憶されている。
【0095】
このようなインタラクションデータが記憶されたインタラクションDB14を用いて、図1の開発支援装置10では、ロボット12と人16とのインタラクションで起きた事象や、ロボットのセンサ履歴、自律行動の過程、自律行動の意思決定に用いた中間的な情報などを視覚化して、インタラクションを再現することによって、ロボット12の自律対話行動を制御するプログラムを修正するための手掛かりを作り出すことができる。
【0096】
開発支援装置10のHDDなどのメモリには、図16に示すようなユーザデータが記憶されている。ユーザデータとしては、ユーザIDに関連付けて、ユーザ名を示すデータ(テキストデータまたは画像データ)、当該ユーザ16に装着されるタグ26のタグID、当該ユーザ16に装着されるユーザ携帯コンピュータ32に関連して設けられる赤外線カメラ30の赤外線カメラID、およびカメラ28のカメラID等が記憶されている。
【0097】
また、開発支援装置10のHDDなどのメモリには、図17に示すようなロボットデータも記憶されている。ロボットデータとしては、ロボットIDに関連付けて、当該ロボット12に装着されるタグ26のタグID、当該ロボット12に搭載される赤外線カメラ34の赤外線カメラID、および眼カメラ36のカメラID等が記憶されている。
【0098】
この開発支援装置10では、ロボット12の開発者等は、インタラクションDB14を検索することによって、その検索条件に対応する対話場面を抽出して、その場面を視覚化することができる。
【0099】
図18には、開発支援装置10の表示装置に表示される検索画面110の一例が示される。この検索画面110で、使用者(開発者等)は、マウス等の入力装置を操作して、種々の条件を入力または指定することによって、インタラクションDB14の検索を行うことができる。具体的には、時刻(日時)、抽出時間t(対話場面として抽出する時間)、検索結果の出力形式(文字表示、サムネイル表示、グラフ表示等)、行動モジュール名(モジュールID)、センサ種類(およびセンサID)、センサの反応までの時間、センサの反応値の範囲、ユーザ名(ユーザID)、展示物24などのオブジェクト名(オブジェクトID)、ロボット名(ロボットID)等を、条件として入力または指定できる。そして、検索ボタンを操作することによって、検索条件に基づいてインタラクションDB14の検索が行われる。条件に当てはまるデータがある場合には、その対話場面が抽出され、検索結果として抽出された対話場面の選択画面112が表示される。
【0100】
この検索画面110で、開発者等は、不都合や問題のあるシーンを見つけたい場合には、問題意識を持って、どのような条件を入力すればその問題となるシーンを得られるかを考えて条件入力を行う必要がある。逆に、うまく行ったシーンを得たい場合には、そのようなシーンを抽出できるような条件を入力する。たとえば、開発者等が、「ロボットに指差しで展示物24を紹介させる行動を実行させたが、果たして見学者26はちゃんとその展示物を見てくれただろうか?」という問題意識を持った場合には、開発者等は、モジュールIDで指差し動作を指定し、反応までの時間を無限大と指定すればよい。これによって、開発支援装置10は、指差し動作を行ってから展示物24を見なかったユーザ26のシーンを検索し、抽出する。
【0101】
図19には、開発支援装置10の表示装置に表示される選択画面112の一例が示される。図19では、検索結果として、2つの対話場面がたとえば文字で表示され、それぞれの場面の開始時刻tsおよび終了時刻teも一緒に表示される。この選択画面112で所望の対話場面を選択して決定ボタンを操作することによって、その対話場面の表示が行われる。
【0102】
図20には、開発支援装置10の表示装置に表示されるシーン表示画面114の一例が示される。このシーン表示画面114で、選択された対話場面が視覚化され、再現される。基本的には、抽出された対話場面の開始時刻tsから終了時刻teまでのシーン再現区間における当該場面が再生される。
【0103】
シーン表示画面114は、タグ状態部116を含む。タグ状態部116には、インタラクションDB14のタグデータを利用して、ロボット12の目の前にいるユーザ16のタグ反応状況が示される。具体的には、タグ状態部116の上下方向が時間軸に相当し、表示部分の中央の横線(たとえば黒色)は現在時刻T(表示時刻)を示している。左側のたとえば赤色で表示される帯(図20で斜線表示)は、ロボット12の赤外線カメラ34にユーザ16のタグ26が反応していた時間を表している。また、この帯の上部には、当該タグ26を装着しているユーザ16のユーザ名(図20ではAさん)が表示される。この帯の右側のたとえば青色で表示される帯は、ロボット12に装着されるタグ26がユーザ16の赤外線カメラ30に反応していた時間を表している。この帯は途切れているが、これは反応がなかった時間を表している。また、この右側の青色帯の上部にも、当該赤外線カメラ30を装着しているユーザ16の名前が表示され得るが、この図20では、左側の赤色帯で表されているロボット12の赤外線カメラ34で反応しているユーザ16と同じ人物であるために、表示しないようにしている。このように、赤色帯と青色帯が同一人物に関して表示された場合には、当該人物16は、ロボット12と向き合っていることがわかる。
【0104】
また、シーン表示画面114は、モータ状態・タッチセンサ状態部118を含む。モータ状態・タッチセンサ状態部118には、インタラクションDB14のモータデータを利用して、ロボット12の姿勢がたとえば青色のフレームで表示される。これによって、表示時刻におけるロボット12の頭部76や腕などの角度からその姿勢を把握することができる。また、センサデータを利用して、タッチセンサ74が反応した部位がたとえば赤いフレームで表示される。タッチセンサ74の部位は、この実施例では、頭、右肩、右上腕、右前腕、右手先、左肩、左上腕、左前腕、左手先、胸、腹である。図20では、左前腕が赤色フレームで表示されていて、つまり、ロボット12の左前腕70Lが接触状態にあることがわかる。
【0105】
また、シーン表示画面114は、映像部120を含む。映像部120には、インタラクションDB14のビデオデータを利用して、各カメラからの映像ないし画像が表示される。具体的には、視線部120aには、ロボット12に設置された眼カメラ36のビデオデータに基づいて、ロボット12の視線方向の映像が表示される。周囲部120bには、環境に設置されたカメラ22のビデオデータに基づいて、ロボット12の周囲を撮影した映像が表示される。また、ロボット部120cには、ユーザ16に装着されたカメラ28のビデオデータに基づいて、ロボット12の様子を撮影した映像が表示される。この映像部120では、開発者等は、ロボット12の目の前の状況、ロボット12の周囲の状況、ロボット12自体の状況を、映像ないし画像によって観察することができる。
【0106】
また、シーン表示画面114は、超音波センサ部122を含む。超音波センサ部122には、インタラクションDB14のセンサデータを利用して、超音波距離センサ50の反応状況が表示される。詳しくは、超音波距離センサ50のそれぞれの出力値データに基づいて、表示時刻におけるロボット12の周囲の状態を俯瞰的に表す。超音波センサ部122では、その中央にロボット12を示す図柄が配置され、画面下方向がロボット12の正面に相当する。また、この画面の端が、実空間20におけるロボット12から所定の距離(たとえば5m)に対応する。そして、超音波距離センサ50の出力値に基づいて、反応のあった位置に対応する画面上の位置に、たとえば黄色の楕円の図柄が表示される。この超音波センサ部122では、開発者等は、たとえば障害物あるいは人間16等がロボット12の周囲にどのような状態(方向、距離)で存在しているかを把握することができる。
【0107】
また、シーン表示画面114は、モジュール部124を含む。モジュール部124には、インタラクションDB14のモジュールデータを利用して、ロボット12が以前に実行した行動モジュールの名前(モジュールID)とその結果、および現在実行中の行動モジュールの名前が表示される。また、シーン再現期間中にモジュールの遷移があった場合には、前回のモジュールの結果が表示され、遷移後のモジュール名が表示される。このモジュール部124では、開発者等は、表示時刻までのロボット12の行動の履歴や、各行動の実行によってロボット12が認識した人間16等の反応結果や、それらに基づく現在実行中の行動を把握することができる。
【0108】
また、シーン表示画面114は、音声認識部126を含む。音声認識部126には、インタラクションDB14の音声認識データを利用して、ロボット12の音声認識結果、すなわち、認識語が文字で表示される。また、その認識語の音声合成データが再生されて、開発支援装置10の内部または外部に設けられる図示しないスピーカからその音声が出力される。たとえば、音声認識を必要とする行動や、音声認識結果が重要とされるような行動の場合には、その認識結果が自律行動の推移に影響を与える。つまり、たとえば音声認識を上手く行えなかった場合には、人間16の実際の反応を認識できていないので、人間16とのインタラクションが成立しなくなるおそれがある。このように、開発者等は、この音声認識部126によって、自律行動の意思決定に用いられる情報を確認することができるし、音声認識がうまく行えたのかどうかを目と耳とで確認することができる。
【0109】
また、シーン表示画面114は、時刻指定部128を含む。時刻指定部128には、表示時刻を指定可能なスライダ130が設けられている。スライダ130は、この対話場面の開始時刻tsから終了時刻teまでの再現区間を示す水平線上に表示されている。開発者等は、マウス等の入力装置で、このスライダ130を移動操作することによって、このシーン表示画面114で再現されるインタラクションの表示時刻を指定することができる。スライダ130によって時刻が指定されたときには、各部116−128の表示がその指定時刻における状態に切り替えられる。なお、スライダ130は、操作されていない場合には、現在の表示時刻を示す位置に移動表示される。開発者等は、たとえば、再生される対話場面において問題があるような状態を見つけたときには、このスライダ130で表示時刻を指定することによって、その時刻における状態を詳細に調査することができる。また、問題の時刻の前後を指定することで、問題発生前の状態や問題発生後の状態も仔細に確認することができる。したがって、正確なデバッグタイミングを検出することができる。
【0110】
なお、時刻指定は場合によってはその数値を入力することによってなされるようにしてもよい。
【0111】
このように、シーン表示画面114では、開発者等は、対話相手16の向き、ロボット12の姿勢や接触状態、ロボット12の見ている画像、ロボット12やその周囲の画像、周囲との離れ具合、あるいは音声認識の結果など、つまり、各種センサの出力の履歴、対話中に起きた事象、自律行動の意思決定に用いた中間処理結果などを、実行されていた行動やその結果あるいは遷移後の行動などとともに確認することができる。このため、自律行動が、どのような状況や認識状態に基づいて実行されていったのかを、事後に簡単に把握することができる。したがって、各情報を個々に確認し、また複数の情報を総合的に勘案しつつ、ロボット12の自律行動に含まれる問題点、不備、あるいは誤りなどを簡単に見出すことができる。
【0112】
なお、この図20では、シーン表示画面114は、タグ状態部116、モータ状態・タッチセンサ状態部118、映像部120、超音波センサ部122、モジュール部124、音声認識部126、および時刻指定部128を含んでいたが、たとえば使用者が任意で各描画部の表示・非表示を切り替えるようにしてもよい。また、各描画部の画面上の配置は一例に過ぎず適宜変更される。また、各描画部は、たとえば別々の画面に分けて表示されてもよい。
【0113】
この開発支援装置10の動作を図21のフロー図に基づいて説明する。図21の最初のステップS71で、開発支援装置10のCPUは、メモリから検索画面データを取得して表示装置に図18に示すような検索画面110を表示する。これによって開発者等に条件入力を促す。この検索画面110で条件入力がなされて検索ボタンが操作された場合には、ステップS73で、入力情報に基づいて、対話場面抽出処理を実行する。この抽出処理の動作の一例が図22に示される。
【0114】
図22のステップS101で、検索画面110における条件入力データを取得し、ステップS103で、条件入力データに基づいてインタラクションDB14内の検索処理を実行する。この検索処理の動作の一例が図23に示される。なお、図23の検索処理は、検索条件として、モジュールとして動作A,センサ種類またはIDとしてセンサB、反応までの時間TR以内,抽出時間tが入力された場合の処理の一例である。
【0115】
図23のステップS121で、変数Taに初期値としてゼロを設定し、ステップS123で、モジュールデータを参照して、時刻Ta以降で動作Aが行われたシーンがまだ残っているかを判断する。ステップS123で“YES”であれば、ステップS125で、動作Aが行われた当該時刻を変数Taに保存し、ステップS127で、センサデータを参照して、時刻Ta以降で初めてセンサBが反応した時刻を検出して、変数Tbに保存する。
【0116】
そして、ステップS129で、動作Aが行われてからセンサBが反応するまでの時間(Tb−Ta)が、入力された反応までの時間値TRよりも大きいか否かを判断する。ステップS129で“NO”であれば、つまり、検索条件に当てはまる場合には、ステップS131で、時刻Taの前後にわたる時間tぶんの対話場面を抽出し、ステップS123へ戻る。また、ステップS129で“YES”であれば、条件を満足しないのでステップS123へ戻る。一方、ステップS123で“NO”であれば、検索処理を終了し、図22のステップS105へ戻る。
【0117】
図22に戻って、ステップS105では、検索処理の結果、条件に当てはまるインタラクションデータがあるか否かを判断し、“YES”であれば、ステップS107で、対話場面の開始時刻Ts,終了時刻Teを抽出する。たとえば、上述の検索処理からは、対話場面の中心となる時刻Taが返されるので、このTaと入力された抽出時間tとに基づいて、開始時刻Tsと終了時刻Teとを算出する。そして、ステップS105へ戻り、条件に当てはまる複数のデータがある場合にはステップS107を繰り返す。一方、ステップS105で“NO”であれば、ステップS109で、得られたすべての対話場面の開始時刻と終了時刻(Ts,Te)の組をメモリの所定領域に出力して、この対話場面抽出処理を終了し、図21のステップS75へ戻る。
【0118】
図21に戻って、ステップS75では、対話場面の選択処理を実行する。つまり、選択画面データをメモリから読み出して、抽出された対話場面の組とともに、図19に示すような選択画面112を表示装置に表示する。これにより、開発者等の選択を促す。この選択画面112で対話場面が選択されて決定ボタンが操作された場合には、ステップS77で、再現シーンの開始時刻Tsと終了時刻Teを、選択された対話場面の開始時刻Tsと終了時刻Teにする。そして、ステップS79で、設定されたシーンの開始時刻Tsと終了時刻Teとに基づいて、データ読み出し処理を実行する。このデータ読み出し処理の動作は、図24−図31に示される。
【0119】
図24には、ロボット12の赤外線カメラ34で検出したタグデータを読み出す場合のデータ読み出し処理の動作の一例が示される。まず、ステップS141では、変数T1に開始時刻Tsを設定し、ステップS143で、赤外線カメラIDがロボット12の赤外線カメラ34の識別情報に相当するタグデータを参照して、時刻T1以降に反応したタグ26があるか否かを判断する。ステップS143で“NO”であれば、ステップS163へ進む。
【0120】
一方、ステップS143で“YES”であれば、ステップS145で、当該タグIDとT1以降で最初に反応した時刻を検出して、当該時刻を新たに変数T1として保存する。そして、ステップS147で、T1以降の上記タグデータを参照して、タグ26が閾値Σ以上の間隔で反応がないか否かを判断する。ステップS147で“NO”であれば、つまり、終了時刻Teまで反応が途切れていないとみなせる場合には、ステップS149で、変数T2に終了時刻Teを設定し、ステップS151で、検出したタグID、T1、T2の値を配列Vtagに保存する。ステップS151を終了すると、ステップS161に進む。
【0121】
一方、ステップS147で“YES”であれば、ステップS153で、上記タグデータを参照して、最後にタグ26が反応した時刻、つまり、途切れたときの時刻を検出して、T2として保存する。そして、ステップS155で、検出したタグID、T1、T2の値を配列Vtagに保存する。
【0122】
続いて、ステップS157で、T1にT2の値を設定し、ステップS159で、上記タグデータを参照して、T1以降に同じタグ26が反応していた期間があるか否かを判断する。ステップS159で“YES”であれば、その反応期間の開始時刻と終了時刻とを取得すべく、ステップS145へ戻る。
【0123】
一方、ステップS159で“NO”であれば、ステップS161で、上記処理されたタグ26以外にも区間内に反応したタグ26があるか否かを判断する。ステップS161で“YES”であれば、その別のタグ26の反応時間を検出すべく、ステップS145へ戻る。一方、ステップS161で“NO”であれば、ステップS163で、保存した配列Vtagのデータを返して、この場合の処理を終了する。
【0124】
図25には、人16の赤外線カメラ30で検出したタグデータを読み出す場合のデータ読み出し処理の動作の一例が示される。まず、ステップS171では、変数T3に開始時刻Tsを設定し、ステップS173で、赤外線カメラIDがユーザ16の赤外線カメラ30の識別情報に相当するタグデータを参照して、時刻T3以降にロボット12のタグ26が反応していた赤外線カメラ30があるか否かを判断する。ステップS173で“NO”であれば、つまり、いずれのユーザ16の赤外線カメラ30のタグデータでもロボット12のタグ26のタグIDが検出されなかった場合には、ステップS193へ進む。
【0125】
一方、ステップS173で“YES”であれば、ステップS175で、当該赤外線カメラIDとT3以降で最初に反応した時刻を検出して、当該時刻を新たに変数T3として保存する。そして、ステップS177で、T3以降の当該赤外線カメラIDのタグデータを参照して、ロボット12のタグ26が閾値Σ以上の間隔で反応がないか否かを判断する。ステップS177で“NO”であれば、つまり、終了時刻Teまで反応が途切れていないとみなせる場合には、ステップS179で、変数T4に終了時刻Teを設定し、ステップS181で、赤外線カメラID、T3、T4の値を配列Rtagに保存する。ステップS181を終了すると、ステップS191に進む。
【0126】
一方、ステップS177で“YES”であれば、ステップS183で、上記タグデータを参照して、最後にタグ26が反応した時刻、つまり、途切れたときの時刻を検出して、T4として保存する。そして、ステップS185で、赤外線カメラID、T3、T4の値を配列Rtagに保存する。
【0127】
続いて、ステップS187で、T3にT4の値を設定し、ステップS189で、上記タグデータを参照して、T3以降に同じ赤外線カメラにロボット12のタグ26が反応していた期間があるか否かを判断する。ステップS189で“YES”であれば、その反応期間の開始時刻と終了時刻とを取得すべく、ステップS175へ戻る。
【0128】
一方、ステップS189で“NO”であれば、ステップS191で、上記赤外線カメラID以外にも区間内にロボット12のタグ26が反応した赤外線カメラIDがあるか否かを判断する。ステップS191で“YES”であれば、その別の赤外線カメラIDのタグデータにおけるロボット12のタグ26の反応時間を検出すべく、ステップS175へ戻る。一方、ステップS191で“NO”であれば、ステップS193で、保存した配列Rtagのデータを返して、この場合の処理を終了する。
【0129】
図26には、モータデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS201では、モータデータを参照して、区間(Ts,Te)内の各単位時間ごとに、モータ角の値(この実施例では11個)を読み出す。この読み出し時刻は単位時間ごとに進められることになる。続いて、ステップS203で、当該モータ角の値(11個)と時刻とを配列Motorに保存する。そして、ステップS205で、時刻Teまでモータデータを探査し終わったか否かを判断する。このステップS205で“YES”と判断されるまで、ステップS201とS203を繰り返し、ステップS205で“YES”であれば、この場合の処理を終了する。
【0130】
図27には、タッチセンサデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS211で、センサデータのうちセンサIDがタッチセンサ74のものを参照して、読み出し時刻において、マスク処理されたタッチセンサ74の値(1個)を取得する。たとえば、反応のないタッチセンサ74を除外し、反応のあった部位のデータを取得する。続いて、ステップS213で、その値と時刻とを配列Touchに保存する。そして、ステップS215で、時刻Teまでセンサデータを探査し終わったか否かを判断する。このステップS215で“YES”と判断されるまでステップS211とS213を繰り返し、ステップS215で“YES”であれば、この場合の処理を終了する。
【0131】
図28には、ビデオデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS221で、ビデオデータを参照して、シーン再現区間Ts〜Te内のロボット12の視線方向のビデオデータがあるか否かを判断する。ロボット12の視線方向のビデオデータは、ロボット12の眼カメラ36で撮影されたデータであるので、眼カメラ36の識別情報を示すカメラIDに関連付けられたビデオデータを探索する。また、たとえばネットワークの不具合やハードウェアの故障等の理由によってある時間だけビデオデータが取得されていない事態が考えられるので、このステップS221ではビデオデータが存在しているか否かを判定するようにしている。
【0132】
ステップS221で“YES”であれば、ステップS223で、区間内のビデオデータを抽出し、ステップS225でそれら抽出したビデオデータを連結する。上述のようにビデオデータは、所定の時間(たとえば1分間程度)ごとにファイル化されて記憶されているので、区間が複数のファイルにわたったり、ファイルの途中から始まったりすることになり得るので、区間に該当する部分をフレーム単位で求めて、それらを連結する。そして、ステップS227で、連結したビデオデータをロボット視線データファイルとしてメモリに保持する。
【0133】
ステップS227を終了し、または、ステップS221で“NO”であれば、ステップS229で、区間内のロボットの周囲を撮影したビデオデータがあるか否かを判断する。ロボット12の周囲は、インタラクションDB14の位置データに基づいて把握される。上述のように、環境に設置されるカメラ22の位置および向きは把握されているので、各カメラ22で撮影可能な領域の座標を把握することができる。開発支援装置10のメモリまたはインタラクションDB14に、各カメラ22の位置および向きデータ、あるいは各カメラ22の撮影可能範囲の座標を示すデータを予め登録しておくことによって、区間内におけるロボット12の周囲を撮影しているカメラ22を特定することができる。したがって、ステップS229では、ロボット12の周囲を撮影していると特定されたカメラ22の識別情報のビデオデータを参照し、区間内のデータが存在しているか否かを判断する。ステップS229で“YES”であれば、ステップS231で区間内のビデオデータを抽出して、ステップS233でそれらのビデオデータを連結し、ステップS235で、連結したビデオデータを周囲データファイルとしてメモリに保持する。
【0134】
ステップS235を終了し、またはステップS229で“NO”であれば、ステップS237で、区間内のロボット12の様子を撮影したビデオデータがあるか否かを判断する。ロボット12の様子を撮影したビデオデータは、ユーザ16に装着されるカメラ28で撮影されたデータであるので、まず、タグデータを参照して、区間内においてロボット12のタグ26を検出した赤外線カメラIDを検出する。検出された場合、メモリのユーザデータを参照して、その赤外線カメラIDを有するユーザ16のカメラIDを検出する。このカメラIDに関連付けられたビデオデータがロボット12の様子を撮影したビデオデータである。そして、このカメラIDに関連付けられたビデオデータを参照して、区間内のデータがあるか否かを判断する。ステップS237で“YES”であれば、ステップS239で区間内のビデオデータを抽出し、ステップS241でそれらビデオデータを連結し、ステップS243で、連結したビデオデータをユーザ視線データファイルとしてメモリに保持する。ステップS243を終了し、またはステップS237で“NO”であれば、この場合の処理を終了する。
【0135】
図29には、超音波センサデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS251では、超音波距離センサ50のセンサIDに関連付けられたセンサデータを参照して、区間内の各単位時間ごとに超音波センサの値(この実施例では24個)を読み出す。この読み出し時刻は単位時間ごとに進められることとなる。続いて、ステップS253で、当該24個の値と時刻とを配列UWSに保存する。そして、ステップS255で、時刻Teまで探査し終わったか否かを判断する。このステップS255で“YES”と判断されるまで、ステップS251およびS253を繰り返し、ステップS255で“YES”であれば、この場合の処理を終了する。
【0136】
図30には、モジュールデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS261で、モジュールデータを参照して、区間内において記録されている、実行されたモジュール名(モジュールID)とその結果等を読み出す。続いて、ステップS263で、そのモジュールの実行開始時刻、モジュール名、結果を配列Moduleに保存する。なお、この実施例ではモジュールデータでは実行開始時刻に関連付けてモジュール名とその結果とが記憶されているので、区間内の探査で検出した時刻が開始時刻になっている。そして、ステップS265で、時刻Teまで探査し終わったか否かを判断し、“NO”であればステップS261に戻る。一方、ステップS265で“YES”であれば、この場合の処理を終了する。
【0137】
図31には、音声認識データの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS271で、音声認識データを参照して、区間内に、まだ保存されていない、つまり取得されていない音声認識結果があるか否かを判断する。ステップS271で“YES”であれば、ステップS273で、取得した音声認識の結果と時刻とを配列speechに保存して、ステップS271に戻る。ステップS271で“NO”であれば、この場合の処理を終了する。
【0138】
こうして、図24−図31のデータ読み出し処理を終了すると、図21のステップS81で、再生時刻Tにシーン再現区間の開始時刻Tsを設定し、ステップS83で、入力装置からの操作入力データに基づいて、スライダ130で時間指定があったか否かを判断する。ステップS83で“YES”であれば、ステップS85で、再生時刻Tに、スライダ指定時刻を設定して、ステップS91へ進む。スライダ指定時刻は、場面全区間を示す水平線上におけるスライダ130の位置に基づいて算出される。
【0139】
一方、ステップS83で“NO”であれば、ステップS87で、再生時刻Tが終了時刻Teに等しいか否かを判断し、“NO”であれば、ステップS89で、再生時刻Tを単位時間(たとえば1フレーム)進めて、ステップS91へ進む。一方、ステップS87で“YES”であれば、このシーンの再生が終了したので、ステップS93へ進む。
【0140】
ステップS91では、再生時刻Tにおける描画処理を実行する。この描画処理の動作は、図32−図38に示される。
【0141】
図32には、タグ状態部116(図20参照)の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS281では、中央に現在時刻Tを示す黒い横線を描画する。続いて、ステップS283で、時刻(T−t,T+t)の範囲で、Vtagに有効な値が入っているものがあるか否かを判断する。なお、表示する期間を決めるtには所定の値が設定される。ステップS283で“YES”であれば、ステップS285で、Vtagに基づいて、当該範囲内で反応がある時間帯を検出して、その時間帯を赤い帯で描画する。続いて、ステップS287で、タグIDに基づいて、当該帯に対応するタグ26の所有者16の名前をユーザデータから読み出して、最上部に表示する。
【0142】
ステップS287を終了し、またはステップS283で“NO”であれば、ステップS289で、時刻(T−t,T+t)の範囲で、Rtagに有効な値の入っているものはあるか否かを判断する。ステップS289で“YES”であれば、ステップS291で、Rtagに基づいて、当該範囲内で、反応がある時間帯を検出し、その時間帯を青い帯で描画する。
【0143】
そして、ステップS293で、描画した帯に対応する赤外線カメラ30の所有者16の名前は、既に表示されているか否かを判断する。ステップS293で“NO”であれば、当該帯に対応する赤外線カメラ30の所有者16の名前を、ユーザデータから読み出して、最上部に表示する。
【0144】
一方、ステップS293で“YES”であれば、そのままステップS297へ進む。また、ステップS289で“NO”であれば、ステップS297へ進む。
【0145】
ステップS297では、他に描画すべきデータが残っているか否かを判断し、“YES”であれば、ステップS283へ戻って、その描画すべきデータに関して、描画を行う。一方、ステップS297で“NO”であれば、この場合の処理を終了する。
【0146】
図33には、モータ状態・タッチセンサ状態部118のうちのモータ状態の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS311で、再生時刻Tについて、Motorの値を調べて、ステップS313で、そのMotorのデータに基づいて、時刻Tにおけるロボット12の姿勢を算出し、青いフレームで表示する。ロボット12の姿勢に関して、頭の姿勢は頭部モータ104の3つの値に基づいて決定される。また、右腕の上腕および前腕の姿勢は右腕モータ100の4つの値に基づいて決定される。また、左腕の上腕および前腕の姿勢は、左腕モータ102の4つの値に基づいて決定される。ステップS313を終了するとこの場合の処理を終了する。
【0147】
図34には、モータ状態・タッチセンサ状態部118のうちのタッチセンサ状態の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS321で、再生時刻Tについて、Touchの値を調べて、ステップS323で、そのTouchのデータに基づいて、時刻Tにおける反応していた部位を検出し、赤いフレームで表示する。ステップS323を終了すると、この場合の処理を終了する。
【0148】
図35には、映像部の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS331で、再生時刻Tに基づいて、当該時刻に対応するフレームにおけるロボット視線データファイルのビデオデータを表示する。これによって、映像部120のうち視線部120aが表示される。また、ステップS333で、再生時刻Tに基づいて、当該時刻に対応するフレームにおける周囲データファイルのビデオデータを表示する。これによって、映像部120のうち周囲部120bが表示される。そして、ステップS335で、時刻Tに基づいて、当該時刻に対応するフレームにおけるユーザ視線データファイルのビデオデータを表示する。これによって、映像部120のうちのロボット部120cが表示される。ステップS335を終了すると、この場合の処理を終了する。
【0149】
図36には、超音波センサ部122の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS341で、時刻Tに基づいて、UWSの値を調べて、ステップS343で、そのUWSのデータの中に閾値Σ2より小さな値があるか否かを判断する。この閾値Σ2は、超音波センサ部122の表示領域の端に相当する値が設定されている。つまり、ここでは、超音波センサ部122の表示領域内に相当する距離で反応を示す超音波センサのデータがあるかどうかを判定している。ステップS343で“YES”であれば、ステップS345で超音波センサのデータに基づく位置に、黄色の楕円を描画する。一方、ステップS343で“NO”であれば、そのままステップS347へ進む。ステップS347では、超音波センサ部122の表示領域の中心部にロボット12を示す図柄を描画する。このステップS347を終了すると、この場合の処理を終了する。
【0150】
図37には、モジュール部124の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS361で、Moduleに基づいて、時刻T−tから時刻Tまでに行われたモジュール名と結果を検出し、検出されたモジュール名とその結果を文字で表示する。続いて、ステップS363で、Moduleに基づいて、時刻Tで行われているモジュール名を検出して、そのモジュール名を文字で表示する。
【0151】
そして、ステップS365で、Moduleに基づいて、当該時刻Tにおいて、モジュールが遷移したか否かを判断し、“YES”であれば、ステップS367で、Moduleに基づいて、遷移前のモジュールの結果を検出して文字で表示し、さらに次に実行するモジュール名を検出して文字で表示する。ステップS367を終了し、またはステップS365で“NO”であれば、この場合の処理を終了する。
【0152】
図38には、音声認識部126の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS381で、時刻Tに基づいて、speechのデータを調べて、ステップS383で、ロボット12が時刻Tで音声認識状態になっているか否かを判断する。つまり、音声認識結果が記憶されているか否かを判断し、“YES”であれば、ステップS385で、音声認識結果のデータ(識別情報)に基づいて、当該認識語のテキストデータを、たとえばメモリに記憶される辞書データから取得して、認識語を文字で表示する。そして、ステップS387で、認識結果の音声合成データをたとえばメモリに記憶される辞書データから取得して、図示しない音声処理回路に与えて図示しないスピーカから当該音声を出力する。ステップS387を終了し、またはステップS383で“NO”であれば、この場合の処理を終了する。
【0153】
図32−図38の描画処理を終了すると、さらに時刻指定部128の描画処理を実行する。この処理の動作は図示は省略するが、再生時刻Tに基づいて、その位置にスライダ130を描画する処理が行われる。このようにして、図21のステップS91の処理によって、再生時刻Tにおける状態等を表示したシーン表示画面114のデータが生成されて、図20に示したようにそのシーン表示画面114が表示装置に表示される。
【0154】
続いて、図21のステップS93では、入力装置からの操作入力データが閲覧終了を指示するものであるか否かを判断し、“NO”であれば、ステップS83に戻り、“YES”であれば、この処理を終了する。
【0155】
この実施例によれば、人間16とロボット12とのインタラクションを記録しておき、事後に、そのインタラクションで起きた事象や、ロボット12のセンサの履歴や、自律行動の意思決定の中間の情報などを、視覚化することによって、再現することができる。したがって、ロボット12の自律的な行動に含まれる問題点を簡単に見出すことができる。
【0156】
また、使用者(開発者)の入力によって表示時刻を指定することができるので、問題点の正確なタイミングを検出することが可能であり、対話行動におけるデバッグタイミングを簡単に指定することができる。
【図面の簡単な説明】
【0157】
【図1】この発明の一実施例の開発支援装置の一例を図解図である。
【図2】インタラクションデータを取得するためのデータ取得システムの概要を示す図解図である。
【図3】データ取得システムの一例を示すブロック図である。
【図4】図3に示すコミュニケーションロボットの一例を示す外観図である。
【図5】コミュニケーションロボットの電気的な構成を示すブロック図である。
【図6】行動モジュールの内容を説明するための図解図である。
【図7】コミュニケーションロボットのデータ取得処理の動作の一例を示すフロー図である。
【図8】図3に示す中央コンピュータのデータ取得時の動作の一例を示すフロー図である。
【図9】インタラクションDBに記憶されるビデオデータの内容の一例を示す図解図である。
【図10】インタラクションDBに記憶されるモータデータの内容の一例を示す図解図である。
【図11】インタラクションDBに記憶されるセンサデータの内容の一例を示す図解図である。
【図12】インタラクションDBに記憶される位置データの内容の一例を示す図解図である。
【図13】インタラクションDBに記憶されるタグデータの内容の一例を示す図解図である。
【図14】インタラクションDBに記憶されるモジュールデータの内容の一例を示す図解図である。
【図15】インタラクションDBに記憶される音声認識データの内容の一例を示す図解図である。
【図16】図1実施例の開発支援装置のメモリに記憶されるユーザデータの内容の一例を示す図解図である。
【図17】開発支援装置のメモリに記憶されるロボットデータの内容の一例を示す図解図である。
【図18】開発支援装置で表示される検索画面の一例を示す図解図である。
【図19】開発支援装置で表示される選択画面の一例を示す図解図である。
【図20】開発支援装置で表示されるシーン表示画面の一例を示す図解図である。
【図21】開発支援装置の動作の一例を示すフロー図である。
【図22】図21の対話場面抽出処理の動作の一例を示すフロー図である。
【図23】図22のデータベース内検索処理の動作の一例を示すフロー図である。
【図24】図21のデータ読み出し処理のうちロボットの赤外線カメラで検出されたタグデータの場合の動作の一例を示すフロー図である。
【図25】図21のデータ読み出し処理のうちユーザの赤外線カメラで検出されたタグデータの場合の動作の一例を示すフロー図である。
【図26】図21のデータ読み出し処理のうちモータデータの場合の動作の一例を示すフロー図である。
【図27】図21のデータ読み出し処理のうちタッチセンサデータの場合の動作の一例を示すフロー図である。
【図28】図21のデータ読み出し処理のうちビデオデータの場合の動作の一例を示すフロー図である。
【図29】図21のデータ読み出し処理のうち超音波センサデータの場合の動作の一例を示すフロー図である。
【図30】図21のデータ読み出し処理のうちモジュールデータの場合の動作の一例を示すフロー図である。
【図31】図21のデータ読み出し処理のうち音声認識データの場合の動作の一例を示すフロー図である。
【図32】図21の時刻Tにおける描画処理のうちタグの状態の場合の動作の一例を示すフロー図である。
【図33】図21の時刻Tにおける描画処理のうちモータの状態の場合の動作の一例を示すフロー図である。
【図34】図21の時刻Tにおける描画処理のうちタッチセンサの状態の場合の動作の一例を示すフロー図である。
【図35】図21の時刻Tにおける描画処理のうち映像部の場合の動作の一例を示すフロー図である。
【図36】図21の時刻Tにおける描画処理のうち超音波センサの場合の動作の一例を示すフロー図である。
【図37】図21の時刻Tにおける描画処理のうちモジュールの場合の動作の一例を示すフロー図である。
【図38】図21の時刻Tにおける描画処理のうち音声認識の場合の動作の一例を示すフロー図である。
【符号の説明】
【0158】
10 …開発支援装置
12 …コミュニケーションロボット
14 …インタラクションDB
16 …人間
18 …データ取得システム
22,28 …カメラ
26 …赤外線LEDタグ
30,34 …赤外線カメラ
36 …眼カメラ
50 …超音波距離センサ
74 …タッチセンサ
84 …CPU
88 …メモリ
90 …モータ制御ボード
92 …センサ入力/出力ボード
94 …音声入力/出力ボード
100 …右腕モータ
102 …左腕モータ
104 …頭部モータ
114 …シーン表示画面
116 …タグ状態部
118 …モータ状態・タッチセンサ状態部
120 …映像部
122 …超音波センサ部
124 …モジュール部
126 …音声認識部
128 …時刻指定部
【技術分野】
【0001】
この発明は、コミュニケーションロボット用開発支援装置および開発支援プログラムに関し、特にたとえば、自律行動するコミュニケーションロボットの制御プログラムの誤りや不備を発見するためのコミュニケーションロボット用開発支援装置および開発支援プログラムに関する。
【背景技術】
【0002】
たとえば本件出願人による特許文献1には、コミュニケーションロボットに備えられる個々の行動を実行するためのプログラムである行動モジュール間の関係性を視覚化する技術が開示されている。この技術では、行動モジュール間の関係を直感的に把握することができるので、たとえば自律的な行動のための規則の作成・編集等を適切に行えるようになっている。また、その後に実際にロボットを動作させて、その編集等の適否を確かめることができる。
【特許文献1】特開2004−114242号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
このようなコミュニケーションロボットと人間との実際の対話行動に基づいて、ロボットの制御プログラムをデバッグしようとする場合には、動作対象となる人間の動作は、常に一定にすることができず、行動の実行の度に人間の動作にはばらつきが生じるため、行動プログラムの問題点を見つけるのは容易ではなかった。
【0004】
それゆえに、この発明の主たる目的は、コミュニケーションロボットの自律的な行動に含まれる問題点を簡単に見出すことができる、コミュニケーションロボット用開発支援装置および開発支援プログラムを提供することである。
【課題を解決するための手段】
【0005】
請求項1の発明は、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコミュニケーションロボット用開発支援装置であって、対話場面の再現区間における情報を記憶手段から読み出す読出し手段、および読出し手段によって読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する表示手段を備える、コミュニケーションロボット用開発支援装置である。
【0006】
請求項1の発明では、コミュニケーションロボット用開発支援装置は記憶手段を含み、記憶手段には、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報が時刻に関連付けて記憶されている。たとえば、実施例では、センサは、コミュニケーションロボットに設けられるセンサ、および人間に装着されるセンサ、ならびに環境に設置されるセンサを含む。読出し手段は、対話場面の再現区間における情報を記憶手段から読み出す。たとえば、実施例では、再現区間は対話場面の開始時刻と終了時刻によって示され、この開始時刻から終了時刻までの対話場面に対応する情報が読み出される。表示手段は、読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する。つまり、センサによって取得されたインタラクションの事象や、インタラクションにおけるセンサの出力の履歴などの情報が、実行しているロボットの行動とともに視覚化されて表示される。したがって、インタラクションを事後に視覚化して再現することができるので、ロボットのたとえば自律的な行動に含まれる問題点を簡単に見出すことが可能になる。
【0007】
請求項2の発明は、請求項1の発明に従属し、記憶手段に記憶された情報は、コミュニケーションロボットの音声認識結果に関する情報をさらに含み、表示手段は、対話場面の音声認識結果をさらに表示する。
【0008】
請求項2の発明では、さらに音声認識の結果を表示することができる。したがって、ロボットがたとえば自律的な行動の意思決定に用いた中間の情報を含めて表示できるので、問題点をさらに簡単に見出すことが可能になる。
【0009】
請求項3の発明は、請求項1または2の発明に従属し、ユーザの入力に応じて対話場面の再現区間における時刻を指定する時刻指定手段をさらに備え、表示手段は、時刻指定手段によって時刻が指定されたとき、当該時刻における情報を視覚化して表示する。
【0010】
請求項3の発明では、ユーザの入力に応じて指定された時刻における情報が視覚化されて表示される。したがって、たとえば問題点の前後にわたって詳細に調査をすることができ、対話行動のデバッグタイミングを簡単に指定することができる。
【0011】
請求項4の発明は、請求項1ないし3の発明のいずれかに従属し、ユーザによって入力された条件に基づいて記憶手段を検索して当該条件に対応する対話場面の再現区間を抽出する抽出手段をさらに備える。
【0012】
請求項4の発明では、入力される検索条件に対応する対話場面の再現区間を抽出することができる。したがって、適切な条件入力をすることによって、所望の対話場面を抽出することができるので、より簡単に問題点を見つけ出すことが可能になる。
【0013】
請求項5の発明は、人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコンピュータを、対話場面の再現区間における情報を記憶手段から読み出す読出し手段、および読出し手段によって読み出された対話場面のセンサ出力および実行した行動に関する情報を視覚化して表示する表示手段として機能させる、コミュニケーションロボット用開発支援プログラムである。
【0014】
請求項5の発明では、上述の請求項1の発明に対応するプログラムであり、請求項1の発明と同様に、インタラクションを事後に再現できるので、ロボットのたとえば自律的な行動に含まれる問題点を簡単に見出すことが可能になる。
【発明の効果】
【0015】
この発明によれば、記録しておいた対話中のコミュニケーションロボットの状態や相手との間で起きた事象を、後に視覚化によって再現することができるので、コミュニケーションロボットの自律的な行動に含まれる問題点を簡単に見出すことができる。
【0016】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0017】
図1を参照して、この実施例のコミュニケーションロボット用開発支援装置(以下、単に「開発支援装置」という。)10は、コミュニケーションロボット(以下、単に「ロボット」という。)12(図4)の開発を支援するためのものである。より具体的には、開発支援装置10は、ロボット12の自律的な対話行動を実行するプログラムに含まれる誤りや不備などの問題点を発見するためのものであり、対話行動を修正するための手掛かりを作り出す。
【0018】
開発支援装置10は、パーソナルコンピュータやワークステーション等のコンピュータであり、図示は省略されるがCPUを含む。CPUには、ROM、HDDおよびRAM等のようなメモリ、マウスまたはキーボード等のような入力装置、LCDまたはCRT等のような表示装置等がバス等を介して接続される。また、開発支援装置10には、インタラクションデータベース(DB)14が接続される。なお、インタラクションDB14は開発支援装置10の内部に設けられてもよい。
【0019】
開発支援装置10のメモリのたとえばHDDには、当該コンピュータを開発支援装置として機能させるための開発支援プログラムおよび必要なデータが予め記憶されている。開発支援装置10のCPUは、この開発支援プログラムに従って処理を実行する。開発支援プログラムは、たとえばCDやDVD等の各種の情報記憶媒体やインタネット等のネットワーク上のサーバ等から取得されてこのコンピュータのメモリに格納されている。メモリのうちRAMは、CPUの作業領域またはバッファ領域として使用され、CPUの処理の実行によって生成されまたは取得されたデータが一時的に記憶される。
【0020】
インタラクションDB14には、ロボット12と人間16とのインタラクション(相互作用)を時刻に関連付けて記録した種々のインタラクションデータが予め記憶されている。開発支援装置10は、このインタラクションDB14に記憶されているインタラクションデータを視覚化して、表示装置の画面上でそのインタラクションを再現する。詳しくは、インタラクションで起きた事象、ロボット12の各種センサ履歴、あるいは自律行動の意思決定に用いた中間処理結果等を時系列で表示または再生する。したがって、ロボット12の開発者等は、記録されたインタラクションを画面上で詳細に確認することができ、ロボット12の自律的な行動に含まれる問題点を容易に見つけ出すことが可能になる。
【0021】
まず、このインタラクションデータを取得してインタラクションDB14に記憶するためのデータ取得システム18について説明する。
【0022】
図2には、インタラクションデータを取得する際の概要が示される。たとえば展示室のような所定の空間20を準備し、この空間20において、ロボット12と人間16とのインタラクションを記録する。この空間20では、たとえばXY2次元平面座標系が設定されていて、天井や壁の上部等には複数のカメラ(たとえばCCDカメラ)22がそれぞれ所定の位置に設置される。また、複数のカメラ22のそれぞれの周囲の所定領域の状況を撮影することができるように、それぞれのカメラ軸が所定の方向に向けられている。つまり、データ取得システム18では、空間20内の任意の座標がどのカメラ22の撮影範囲に含まれるかを把握できるようになっている。なお、図2では、3台のカメラ22が示されるがカメラ22の台数は適宜に設定されるのは言うまでもない。
【0023】
また、空間20の壁等にはポスタ等の展示物24が設けられている。展示物24には、赤外線LEDタグ(以下、単に「タグ」ともいう。)26が取り付けられていて、当該タグを示す識別情報を発している。詳しくは、タグ26は、赤外線LED,駆動回路および内部電池等を含む。タグ26では、駆動回路によって赤外線LEDが点滅制御され、当該タグのID番号が送信される。なお、図2では、1つの展示物24のみが示されるが、空間20内においては複数の展示物24が設けられてよい。
【0024】
また、人間16には、1つのカメラ(たとえばCCDカメラ)28および1つの赤外線カメラ(赤外線センサ)30が装着される。カメラ28および赤外線カメラ30は、たとえば1つの筐体に内蔵されるヘッドセットとして構成されており、人間16の頭に装着される。カメラ28および赤外線カメラ30の両カメラ軸は、頭部に装着されたとき、ともに人間16のたとえば視線方向に向けられるようになっている。したがって、視線方向に位置するタグ26の設けられた展示物24を識別することができるし、当該展示物24の可視光画像も同時に撮影することができる。カメラ28および赤外線カメラ30は、人間16に背負われたユーザ携帯コンピュータ32に接続されていて、それぞれで撮影された可視光画像および赤外線画像の映像信号をユーザ携帯コンピュータ32に出力する。
【0025】
また、人間16にもタグ26がたとえば体の正面の所定の位置に装着される。また、図2では示されないが、ロボット12にもタグ26がたとえば体の正面の所定の位置に装着される(図4参照)。したがって、人間16の視線方向にロボット12が位置しているとき、ロボット12を識別することができるし、そのロボット12の可視光画像も同時に撮影できる。また、後述するように、ロボット12にも、赤外線カメラ34および眼カメラ36がたとえば体の正面の所定の位置に設けられている(図4参照)。したがって、ロボット12は、その正面に位置する展示物24または人間(ユーザ)16をタグ情報に基づいて識別するとともに、その可視光画像も同時に撮影することが可能である。
【0026】
図3には、データ取得システム18の電気的な構成の一例を示すブロック図が示される。データ取得システム18はデータを取得する中央コンピュータ38を含む。中央コンピュータ18には複数のカメラ22が接続されている。また、中央コンピュータ38は、ユーザ携帯コンピュータ32およびロボット12と無線LANなどの無線で接続されている。さらに中央コンピュータ38はインタラクションDB14と接続されている。
【0027】
中央コンピュータ38は、パーソナルコンピュータやワークステーション等のコンピュータであり、CPUを含む。CPUには、ROM,HDDおよびRAM等のメモリがバスを介して接続されている。メモリには、データ取得を実行するためのプログラムおよび必要なデータが記憶されていて、CPUはこのプログラムに従って処理を実行する。また、CPUには無線通信装置等が接続されていて、CPUは、この無線通信装置を介して、ユーザ携帯コンピュータ32およびロボット12とデータを送受信する。
【0028】
カメラ22は、たとえばCCDカメラであり、周囲の可視光画像を撮影してその映像信号を中央コンピュータ38に出力する。中央コンピュータ38は、取得した可視光画像のデータに対して、計測時刻を特定するための時間情報を付加する処理等を行う。
【0029】
また、カメラ28も、同様であり、ユーザ視線方向の可視光画像を撮影してその映像信号をユーザ携帯コンピュータ32に出力する。赤外線カメラ30は、ユーザ視線方向の赤外線画像を撮影してその映像信号をユーザ携帯コンピュータ32に出力する。ユーザ携帯コンピュータ32は、赤外線画像のデータを処理してタグ26を検出し、検出したタグ26の点滅状態等からそのID番号を検出する。ユーザ携帯コンピュータ32は、取得したタグ26の識別情報および可視光画像等の各データに対して、検出または計測時刻を特定するための時間情報を付加する処理等を行って、各情報を中央コンピュータ38へ無線通信装置を介して送信する。
【0030】
なお、時間的な同期を取る方法は、たとえば、全ての装置がワールドクロックに合わせて計測動作を行ったりしてもよいし、また、各装置が独立に内部クロックを持ち、たとえば中央コンピュータ38から送信される所定の同期信号を基準にオフセットを調整したりするようにしてもよい。
【0031】
ロボット12は、各種センサを有するヒューマノイド型で自律移動型のものであり、身振りおよび音声の少なくとも一方を用いて、人間16とコミュニケーション行動を実行することができる。たとえば、対話相手16の存在を検知してその方に顔を向けたり、さらに「こんにちは」と能動的に話しかけたり、また、触られたときにその接触箇所に顔を向けたりする、といった様々なコミュニケーション行動を実行できる。
【0032】
また、このロボット12は、自身の視点から空間20の状況や人間16の状況等を観測する。そして、検出したタグ26の識別情報、映像データ、各種センサ出力データ、モジュールデータ、音声認識データ等のインタラクションデータに対して、検出ないし計測時刻を特定するための時間情報を付加して、中央コンピュータ38に無線によって送信する。
【0033】
図3および図4を参照して、ロボット12の一例を詳細に説明する。図4に示すように、ロボット12は台車40を含み、この台車40の下面または側面にはロボット12を自律移動させる車輪42が設けられる。車輪42は車輪モータ44(図5)によって駆動され、台車40すなわちロボット12を前後左右任意の方向に動かすことができる。
【0034】
なお、図4においては省略するが、台車40の前面には、衝突センサ46(図5)が取り付けられ、この衝突センサ46は台車40への人や他の障害物の接触を検知する。つまり、ロボット12の移動中に障害物との接触を検知すると、直ちに車輪42の駆動を停止してロボット12の移動を急停止させる。
【0035】
台車40の上には、多角形柱のセンサ取付パネル48が設けられ、このセンサ取付パネル48の各面には、複数(この実施例では24個)の超音波距離センサ50がそれぞれ取り付けられる。この超音波距離センサ50は、センサ取付パネル48すなわちロボット12の周囲の主として人16等との距離を計測するものである。
【0036】
また、台車40の上には、さらに、その下部がセンサ取付パネル48に囲まれて、ロボット12の胴体が直立するように設けられる。この胴体は、下部胴体52と上部胴体54とによって構成され、下部胴体52および上部胴体54は、連結部56によって互いに連結される。図示は省略するが、連結部56には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体54の高さすなわちロボット12の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ58(図5)によって駆動される。
【0037】
上部胴体54のほぼ中央には、1つの全方位カメラ60と1つの赤外線カメラ34と1つのマイク62とが設けられる。全方位カメラ60は、ロボット12の周囲を撮影するものであり、後述する眼カメラ36とは区別される。この全方位カメラ60としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。赤外線カメラ34は、上述の赤外線カメラ30と同様に、タグ26の発する赤外線を検出するためのものである。また、マイク62は、周囲の音、とりわけ人の声を取り込む。なお、これら全方位カメラ60,赤外線カメラ34およびマイク62の設置位置は上部胴体54に限られず適宜変更され得る。
【0038】
また、たとえば上部胴体54の胸部には、当該ロボット12を識別するためのID番号を発するタグ26が取り付けられている。
【0039】
上部胴体54の両肩には、それぞれ、肩関節64Rおよび64Lによって、上腕66Rおよび66Lが設けられる。肩関節64Rおよび64Lは、それぞれ、3軸の自由度を有する。すなわち、肩関節64Rは、X軸、Y軸およびZ軸のそれぞれの軸廻りにおいて上腕66Rの角度を制御できる。Y軸は、上腕66Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節64Lは、A軸、B軸およびC軸のそれぞれの軸廻りにおいて上腕66Lの角度を制御できる。B軸は、上腕66Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に対して、それぞれ異なる方向から直交する軸である。
【0040】
また、上腕66Rおよび66Lのそれぞれの先端には、肘関節68Rおよび68Lを介して、前腕70Rおよび70Lが設けられる。肘関節68Rおよび68Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕70Rおよび70Lの角度を制御できる。
【0041】
なお、上腕66Rおよび66Lならびに前腕70Rおよび70Lの変位を制御するX軸,Y軸,Z軸,W軸およびA軸,B軸,C軸,D軸では、それぞれ、「0度」がホームポジションであり、このホームポジションでは、図4に示すように、上腕66Rおよび66Lならびに前腕70Rおよび70Lは下方に向けられる。
【0042】
前腕70Rおよび70Lのそれぞれの先端には、手に相当する球体72Rおよび72Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【0043】
また、図示は省略するが、上部胴体54の肩関節64Rおよび64Lを含む肩の部分や上述の上腕66Rおよび66L、前腕70Rおよび70Lならびに球体72Rおよび72L、さらに、上部胴体54の胸の部分、下部胴体52の腹の部分、頭部76には、それぞれ、タッチセンサ74(図5で包括的に示す。)が設けられていて、これらのタッチセンサ74は、人がロボット12の当該各部位に触れたかどうかを検知する。
【0044】
上部胴体54の中央上方には、首関節78を介して頭部76が設けられる。首関節78は、3軸の自由度を有し、S軸、T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上(鉛直上向き)に向かう軸であり、T軸およびU軸は、それぞれ、そのS軸に対して異なる方向で直交する軸である。頭部76には、人の口に相当する位置に、スピーカ80が設けられる。スピーカ80は、ロボット12が、それの周辺の人16に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ80は、ロボット12の他の部位、たとえば胴体などに設けられてもよい。
【0045】
また、頭部76には、目に相当する位置に眼球部82Rおよび82Lが設けられる。眼球部82Rおよび82Lは、それぞれ眼カメラ36Rおよび36Lを含む。以下、右の眼球部82Rと左の眼球部82Lとをまとめて眼球部82ということがあり、また、右の眼カメラ36Rと左の眼カメラ36Lとをまとめて眼カメラ36ということもある。
【0046】
眼カメラ36は、ロボット12に接近した人16の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ36としては、上述した全方位カメラ60と同様のカメラを用いることができる。
【0047】
たとえば、眼カメラ36は眼球部82内に固定され、眼球部82は眼球支持部(図示せず)を介して頭部76内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部76に対して設けられる軸であり、α軸は頭部76の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部76の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部76がホームポジションにあるとき、α軸はS軸と平行であり、β軸はU軸と平行であるように設定される。このような頭部76において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部82ないし眼カメラ36の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
【0048】
なお、眼カメラ36の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図4に示すように、眼カメラ36のカメラ軸は頭部76の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
【0049】
図5は、ロボット12の電気的な構成を示すブロック図であり、この図5を参照して、ロボット12は、全体を制御するCPU84を含む。CPU84は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス86を介して、メモリ88、モータ制御ボード90、センサ入力/出力ボード92および音声入力/出力ボード94に接続される。
【0050】
メモリ88は、図示は省略するが、ROMやHDDおよびRAMを含み、ROMまたはHDDにはロボット12の制御プログラムが予め記憶され、RAMはワークメモリやバッファメモリとして用いられる。制御プログラムはたとえば各コミュニケーション行動を実行するためのプログラム(行動モジュール)、インタラクションを観測してデータを取得するためのプログラム、取得したデータに時間情報等を付加するためのプログラム、中央コンピュータ38との間で通信するためのプログラム等を含む。メモリ88にはまた、コミュニケーション行動の実行の際にスピーカ80から発生すべき音声または声の音声データ(音声合成データ)および所定の身振りを提示するための角度データ等を含む身体動作データ等も記憶される。
【0051】
モータ制御ボード90は、たとえばDSPで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。具体的には、モータ制御ボード90は、各モータに設けられるロータリエンコーダ等のような角度センサにも接続されており、各角度センサからの出力にも基づいて各モータの回転を制御する。すなわち、モータ制御ボード90は、CPU84からの制御データを受け、右眼球部82Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図5では、まとめて「右眼球モータ」と示す。)96の回転角度を制御する。同様に、モータ制御ボード90は、CPU84からの制御データを受け、左眼球部82Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図5では、まとめて「左眼球モータ」と示す。)98の回転角度を制御する。
【0052】
また、モータ制御ボード90は、CPU84からの制御データを受け、右肩関節64RのX軸、Y軸およびZ軸のそれぞれの角度を制御する3つのモータと右肘関節68RのW軸の角度を制御する1つのモータとの計4つのモータ(図5では、まとめて「右腕モータ」と示す。)100の回転角度を調節する。同様に、モータ制御ボード90は、CPU84からの制御データを受け、左肩関節64LのA軸、B軸およびC軸のそれぞれの角度を制御する3つのモータと左肘関節68LのD軸の角度を制御する1つのモータとの計4つのモータ(図5では、まとめて「左腕モータ」と示す。)102の回転角度を調整する。
【0053】
さらに、モータ制御ボード90は、CPU84からの制御データを受け、頭部76のS軸、T軸およびU軸のそれぞれの角度を制御する3つのモータ(図5では、まとめて「頭部モータ」と示す。)104の回転角度を制御する。さらにまた、モータ制御ボード90は、CPU84からの制御データを受け、腰モータ58および2つの車輪42をそれぞれ駆動する2つのモータ(図5では、まとめて「車輪モータ」と示す。)44の回転角度を制御する。
【0054】
なお、この実施例では、車輪モータ44を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ44と同様に、直流モータを用いるようにしてもよい。
【0055】
センサ入力/出力ボード92もまた、同様に、DSPで構成され、各センサからの信号を取り込んでCPU84に与える。すなわち、超音波距離センサ50のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード92を通してCPU84に入力される。また、全方位カメラ60からの映像信号が、必要に応じてこのセンサ入力/出力ボード92で所定の処理を施された後、CPU84に入力される。眼カメラ36からの映像信号も、同様にして、CPU84に入力される。
【0056】
また、赤外線カメラ34からの映像信号は、このセンサ入力/出力ボード92で所定の処理を施される。つまり、センサ入力/出力ボード92は、赤外線画像からタグ26を検出して、タグ26の点滅状態からその識別番号を検出する。検出されたタグ26の識別情報はCPU84に入力される。
【0057】
また、上述した複数のタッチセンサ74からの信号がセンサ入力/出力ボード92を介してCPU84に与えられる。さらに、上述した衝突センサ46からの信号も、同様にして、CPU84に与えられる。
【0058】
音声入力/出力ボード94もまた、同様に、DSPで構成され、CPU84から与えられる音声合成データに従った音声または声がスピーカ80から出力される。また、マイク62からの音声入力が、音声入力/出力ボード94を介してCPU84に取り込まれる。
【0059】
また、CPU84は、バス86を介して通信LANボード106に接続される。通信LANボード106は、DSPで構成され、CPU84からの送信データを無線通信装置108に与えて、無線通信装置108から送信データを、図示は省略するが、たとえば無線LANのようなネットワークを介して中央コンピュータ38に送信させる。また、通信LANボード106は、無線通信装置108を介してデータを受信し、受信したデータをCPU84に与える。
【0060】
このロボット12は人間と多様なコミュニケーション行動を取るために、様々な状況における多数の相互作用的な行動を備えるようにされる。このような各行動を実現するためのプログラムはモジュール化されており、「行動モジュール」として実行される。また、各行動の実行順序が規則として多数規定される。つまり、ロボット10は行動モジュールを順次実行し、その行動モジュールの実行順序は規則によって導かれる。
【0061】
行動モジュールは、図6に示すように、前提条件部,指示部および認識部を含む。行動モジュールを実行する際には、まず、前提条件部を実行することによって、ロボット12は、その行動モジュールが実行可能な状況であるかどうかを確認する。たとえば、天気情報をインタネットから検索することによって天気についての行動を取ることを実現する行動モジュールは、ロボット12がインタネット接続可能でない場合には、実行可能ではなく、前提条件を満足しない。前提条件を満足する場合には、次に指示部を実行する。これにより、ロボット12は人間と相互作用する行動を取り、具体的には発声および身ぶり等を用いて所定の行動を人間に提示する。人間16はこのようなロボット12の行動に対して何らかの反応をするであろう。たとえば、握手の行動モジュールでは、ロボット12は「握手しよう」と言ってその手を差し出す。この場合、その人がロボット12の行為に反応するときはその人は自分の手をロボット12の手の周囲に伸ばすであろう。したがって、認識部は、ロボット12の提示した行動に対して取ると予想される幾つかの人間の反応(予想1〜予想N)を認識するように設定されている。このように、行動モジュールは特定の状況を生み出し、その後その特定状況下における人間16の行動を認識することができる。
【0062】
その後、ロボット12は、現在の行動モジュールの実行を終了し、認識結果に相当する結果値(予想1〜予想N)を記録して、次に実行可能な行動モジュールに遷移する。次に実行可能な行動モジュールは、現在の行動モジュールの結果値および行動モジュール実行の履歴によって決定される。この順次的な遷移は規則によって導かれる。
【0063】
この規則は、行動モジュールの基本的な実行順序に関する規則であり、短期的な行動の遷移ないし推移が定められている。たとえば数個程度の行動モジュールの繋がりないし関係であり得る。しかし、長期(たとえば一日中)やすべての行動の推移を定めたものではない。規則には、基本的には、ある状況や履歴において、次に実行すべき行動モジュールが規定されている。また、規則は、次の行動モジュールの実行を抑制するための否定の規則も含んでいる。
【0064】
また、外部から妨害などがあった場合は、反応的遷移および反応的モジュールによって取り扱われる。反応的遷移が現在の状況に対して設定されていて、かつ、対応する次の行動モジュールの前提条件部が満足される場合、ロボット12は現在の行動モジュールの実行を止めてすぐに次の行動モジュールに遷移する。この反応的な遷移も規則によって導かれる。一方、反応的モジュールが稼動されるときには、ロボット12は現在の行動モジュールの実行を止めず、これと並行して反応的モジュールを実行する。
【0065】
ロボット12は、このような行動モジュールと規則とに基づいて、その自律対話行動を実行する。そして、インタラクションデータ取得処理においては、この行動モジュールが切り替えられたときに、行動モジュールとその結果を記録して、インタラクションデータとして取得する。
【0066】
このデータ取得システム18におけるロボット12のデータ取得処理の動作を、図7のフロー図を用いて説明する。なお、ロボット12のCPU84は、各データの取得を所定周期(たとえば1秒間に30フレーム等)で行う。時刻データはたとえば図示しない時計回路から取得される。
【0067】
図7のステップS1で、CPU84は、眼カメラ36から取得される映像情報をセンサ入力/出力ボード92を介して画像データとして取得して、そのカメラIDに関連付けて、時刻とともにメモリ88に記憶する。次に、ステップS3で、各関節のモータの角度の値をモータ制御ボード90を介して取得して、各モータIDに関連付けて、時刻とともにメモリ88に記憶する。ステップS5では、各種センサの反応値をセンサ入力/出力ボード92を介して取得して、各センサIDに関連付けて、時刻とともにメモリ88に記憶する。また、ステップS7では、現在位置座標を算出して、時刻とともにメモリ88に記憶する。メモリ88には空間20におけるロボット12の前時刻(初期)の位置座標が記憶されているので、車輪モータ44の角度センサの出力に基づいて、現在位置座標を算出することができる。なお、ロボット12の現在位置座標は、空間20に設けられた複数のカメラ22からの画像データに基づいて、中央コンピュータ38で算出するようにしてもよい。
【0068】
続いて、ステップS9では、赤外線カメラ34に反応するタグ26があるか否かを判断する。つまり、センサ入力/出力ボード92から、タグ26の識別情報(タグID)を取得したか否かを判断する。ステップS9で“YES”であれば、ステップS11でタグ情報(タグID)を取得して、その赤外線カメラIDに関連付けて、時刻とともにメモリ88に記憶する。なお、ステップS9で“NO”であればそのままステップS13へ進む。
【0069】
ステップS13では、実行モジュールが切り替わったか否かを判断する。つまり、メモリ88に記憶されている実行中のモジュールIDを示すデータが前時刻から変化したか否かを判断する。ステップS13で“YES”であれば、ステップS15で、前モジュールの結果をメモリ88から取得するとともに、時刻を取得してメモリ88に記憶する。そして、ステップS17で、前モジュールの開始時刻をメモリ88から取得して、前モジュールの結果とその開始時刻とをメモリ88に記憶する。なお、ステップS13で“NO”であればそのままステップS19へ進む。
【0070】
ステップS19では、音声認識状態に遷移しているか否かを判断する。つまり、メモリ88に記憶されている音声認識の状態を示すデータが音声認識実行中を示しているか否かを判断する。ステップS19で“YES”であれば、ステップS21で、音声認識結果をメモリ88から取得して、時刻とともにメモリ88に記憶する。なお、ステップS19で“NO”であれば、そのままステップS23へ進む。
【0071】
続いて、ステップS23では、メモリ88に記憶した各取得データ(インタラクションデータ)を通信LANボード106および無線通信装置18を介して中央コンピュータ38に送信する。
【0072】
そして、ステップS25で、データの取得が終了であるか否かを判断する。たとえば、人間16との対話行動が行われなくなっているか否かを判断したり、所定のデータ取得時間が経過したか否かを判断したりする。ステップS25で“NO”であれば、ステップS1へ戻って、繰り返し次の検出時刻でのデータ取得を行う。ステップS25で“YES”であれば、この処理を終了する。
【0073】
また、このデータ取得システム18における中央コンピュータ38の動作を、図8のフロー図を用いて説明する。なお、中央コンピュータ38のCPUは、ロボット12と同様に、各データの取得を所定周期(たとえば1秒間に30フレーム等)で行う。時刻データもたとえば図示しない時計回路から取得される。
【0074】
図8のステップS31で、中央コンピュータ38のCPUは、複数のカメラ22から取得される映像情報を画像データとして取得して、カメラIDに関連付けて、時刻とともにRAMに記録する。そして、所定時間(たとえば1分間程度)のデータを得たときに、カメラIDごとに1つのビデオデータファイルにして、インタラクションDB14に記録する。なお、ファイル化するときに、当該ビデオデータに収められる画像データの開始時刻と終了時刻とを検出して、ビデオデータに付与しておく。
【0075】
次に、ステップS33で、ロボット12からデータを受信したか否かを判断し、“YES”であれば、ステップS35で、受信データから眼カメラ36の映像情報を取得してRAMに記憶する。この眼カメラ36の画像データは、ロボット12でカメラIDの情報と時刻の情報とが付与されている。したがって、中央コンピュータ38では、上述のカメラ22の画像データと同様にして、所定時間(たとえば1分間程度)のデータを得たときに、カメラIDごとに1つのビデオデータファイルにして、インタラクションDB14に記録する。
【0076】
続いて、ステップS37で受信データから各モータの角度の値と時刻とを取得してRAMに記憶する。そして、計測時刻ごとに、各モータIDとその角度データと関連付けたモータデータをインタラクションDB14に記録する。
【0077】
また、ステップS39で、受信データから各センサの反応値と時刻とを取得して、RAMに記憶する。そして、計測時刻ごとに、各センサIDとその出力値データとを関連付けたセンサデータをインタラクションDB14に記録する。
【0078】
ステップS41では、受信データからロボット12の現在位置と時刻とを取得してRAMに記憶する。そして、計測時刻とその位置座標データとを関連付けた位置データをインタラクションDB14に記録する。
【0079】
また、ステップS43では、受信データにタグ情報が含まれる場合、受信データからタグ情報と時刻とを取得してRAMに記憶する。そして、赤外線カメラIDごとに、計測時刻とタグIDとを関連付けたタグデータをインタラクションDB14に記録する。
【0080】
また、ステップS45では、受信データにモジュールデータが含まれる場合、受信データから前モジュールとその結果と開始時刻とを取得してRAMに記憶する。そして、検出時刻(開始時刻)と前モジュール名(モジュールID)とその結果とを関連付けたモジュールデータをインタラクションDB14に記録する。
【0081】
また、ステップS47では、受信データに音声認識データが含まれる場合、受信データから音声認識データと時刻とを取得してRAMに記憶する。そして、検出時刻と音声認識結果とを関連付けた音声認識データをインタラクションDB14に記録する。なお、ステップS33“NO”であれば、つまり、ロボット12からデータを受信できなかった場合には、そのままステップS49へ進む。
【0082】
ステップS49では、ユーザ携帯コンピュータ32からデータを受信したか否かを判断する。ステップS49で“YES”であれば、ステップS51で、受信データからカメラ28の映像情報を取得してRAMに記憶する。このカメラ28の画像データは、ロボット12の場合と同じように、ユーザ携帯コンピュータ32のCPUによって、カメラIDの情報と時刻の情報とが付与されている。したがって、中央コンピュータ38では、上述のカメラ22の画像データの場合と同様にして、所定時間(たとえば1分間程度)のデータを得たときに、カメラIDごとに1つのビデオデータファイルにして、インタラクションDB14に記録する。
【0083】
また、ステップS53では、受信データにタグ情報が含まれる場合、受信データからタグ情報と時刻とを取得してRAMに記憶する。そして、赤外線カメラIDごとに、計測時刻とタグIDとを関連付けたタグデータをインタラクションDB14に記録する。なお、ステップS49で“NO”であれば、そのままステップS55へ進む。
【0084】
ステップS55では、ロボット12はまだ作動しているか否かを判断する。ステップS55で“NO”であれば、つまり、たとえば、ロボット12からデータを受信しなくなった場合、所定のデータ取得時間が経過した場合等には、この処理を終了する。一方、ステップS55で“YES”であれば、ステップS31へ戻って繰り返し次の検出時刻でのデータ取得を行う。
【0085】
なお、ユーザ携帯コンピュータ32では、ロボット12と同様にして、データ取得と送信とが処理される。たとえば、カメラ28から取得される映像情報は、そのカメラIDに関連付けて時刻とともに記憶される。また、赤外線カメラ30に反応するタグ26があるか否かを判断し、タグIDを検出した場合には、タグ情報(タグID)を取得して、その赤外線カメラIDに関連付けて、時刻とともに記憶する。そして、記憶したデータを中央コンピュータ38へ送信する。
【0086】
このようにして、データ取得システム18によって、各種のインタラクションデータが取得されてインタラクションDB14に記録される。
【0087】
図9には、インタラクションDB14に記憶されるインタラクションデータのうちビデオデータの内容が示される。ビデオデータは、たとえばカメラID(図9ではCAM001)ごとに記憶されている。そして、各ビデオデータが、その開始時刻および終了時刻に関連付けて記憶されている。カメラIDは、この実施例では、ロボット12の2つの眼カメラ36、環境(空間20)に設置される複数のカメラ22、およびユーザ携帯コンピュータ32に関連して設けられるカメラ28の識別情報を含む。
【0088】
なお、この実施例では、ロボット12の全方位カメラ60から取得される画像データを記録するようにしていないが、この全方位画像データを展開した画像データに基づくビデオデータをインタラクションDB14に記録するようにしてもよい。
【0089】
図10には、インタラクションDB14に記憶されるモータデータの内容が示される。モータデータは、たとえば計測時刻(検出時刻)tごとに記憶されている。そして、各モータデータは、各モータIDに関連付けられたその角度データを含む。モータIDは、この実施例では、右腕モータ100の4つのモータ、左腕モータ102の4つのモータ、頭部モータ104の3つのモータの識別情報を含む。
【0090】
図11には、インタラクションDB14に記憶されるセンサデータの内容が示される。センサデータは、たとえば、計測時刻tごとに記憶されている。そして、各センサデータは、各センサIDに関連付けられたそのセンサ出力データを含む。この実施例では、センサIDは、超音波距離センサ50(24個)、タッチセンサ74(11部位)の識別情報を含む。
【0091】
図12には、インタラクションDB14に記憶される位置データの内容が示される。位置データとしては、計測時刻tに関連付けられて位置座標データが記憶されている。
【0092】
図13には、インタラクションDB14に記憶されるタグデータの内容が示される。タグデータは、たとえば赤外線カメラID(図13ではIRC001)ごとに記憶されている。そして、検出時刻に関連付けてタグIDが記憶されている。赤外線カメラIDは、この実施例では、ロボット12の赤外線カメラ34、およびユーザ携帯コンピュータ32に関連して設けられる赤外線カメラ30の識別情報を含む。
【0093】
図14には、インタラクションDB14に記憶されるモジュールデータの内容が示される。モジュールデータとしては、検出時刻に関連付けて、前モジュール名(モジュールID)およびその結果が記憶されている。
【0094】
図15には、インタラクションDB14に記憶される音声認識データの内容が示される。音声認識データとしては、検出時刻に関連付けて、音声認識結果データ(認識語ID)が記憶されている。
【0095】
このようなインタラクションデータが記憶されたインタラクションDB14を用いて、図1の開発支援装置10では、ロボット12と人16とのインタラクションで起きた事象や、ロボットのセンサ履歴、自律行動の過程、自律行動の意思決定に用いた中間的な情報などを視覚化して、インタラクションを再現することによって、ロボット12の自律対話行動を制御するプログラムを修正するための手掛かりを作り出すことができる。
【0096】
開発支援装置10のHDDなどのメモリには、図16に示すようなユーザデータが記憶されている。ユーザデータとしては、ユーザIDに関連付けて、ユーザ名を示すデータ(テキストデータまたは画像データ)、当該ユーザ16に装着されるタグ26のタグID、当該ユーザ16に装着されるユーザ携帯コンピュータ32に関連して設けられる赤外線カメラ30の赤外線カメラID、およびカメラ28のカメラID等が記憶されている。
【0097】
また、開発支援装置10のHDDなどのメモリには、図17に示すようなロボットデータも記憶されている。ロボットデータとしては、ロボットIDに関連付けて、当該ロボット12に装着されるタグ26のタグID、当該ロボット12に搭載される赤外線カメラ34の赤外線カメラID、および眼カメラ36のカメラID等が記憶されている。
【0098】
この開発支援装置10では、ロボット12の開発者等は、インタラクションDB14を検索することによって、その検索条件に対応する対話場面を抽出して、その場面を視覚化することができる。
【0099】
図18には、開発支援装置10の表示装置に表示される検索画面110の一例が示される。この検索画面110で、使用者(開発者等)は、マウス等の入力装置を操作して、種々の条件を入力または指定することによって、インタラクションDB14の検索を行うことができる。具体的には、時刻(日時)、抽出時間t(対話場面として抽出する時間)、検索結果の出力形式(文字表示、サムネイル表示、グラフ表示等)、行動モジュール名(モジュールID)、センサ種類(およびセンサID)、センサの反応までの時間、センサの反応値の範囲、ユーザ名(ユーザID)、展示物24などのオブジェクト名(オブジェクトID)、ロボット名(ロボットID)等を、条件として入力または指定できる。そして、検索ボタンを操作することによって、検索条件に基づいてインタラクションDB14の検索が行われる。条件に当てはまるデータがある場合には、その対話場面が抽出され、検索結果として抽出された対話場面の選択画面112が表示される。
【0100】
この検索画面110で、開発者等は、不都合や問題のあるシーンを見つけたい場合には、問題意識を持って、どのような条件を入力すればその問題となるシーンを得られるかを考えて条件入力を行う必要がある。逆に、うまく行ったシーンを得たい場合には、そのようなシーンを抽出できるような条件を入力する。たとえば、開発者等が、「ロボットに指差しで展示物24を紹介させる行動を実行させたが、果たして見学者26はちゃんとその展示物を見てくれただろうか?」という問題意識を持った場合には、開発者等は、モジュールIDで指差し動作を指定し、反応までの時間を無限大と指定すればよい。これによって、開発支援装置10は、指差し動作を行ってから展示物24を見なかったユーザ26のシーンを検索し、抽出する。
【0101】
図19には、開発支援装置10の表示装置に表示される選択画面112の一例が示される。図19では、検索結果として、2つの対話場面がたとえば文字で表示され、それぞれの場面の開始時刻tsおよび終了時刻teも一緒に表示される。この選択画面112で所望の対話場面を選択して決定ボタンを操作することによって、その対話場面の表示が行われる。
【0102】
図20には、開発支援装置10の表示装置に表示されるシーン表示画面114の一例が示される。このシーン表示画面114で、選択された対話場面が視覚化され、再現される。基本的には、抽出された対話場面の開始時刻tsから終了時刻teまでのシーン再現区間における当該場面が再生される。
【0103】
シーン表示画面114は、タグ状態部116を含む。タグ状態部116には、インタラクションDB14のタグデータを利用して、ロボット12の目の前にいるユーザ16のタグ反応状況が示される。具体的には、タグ状態部116の上下方向が時間軸に相当し、表示部分の中央の横線(たとえば黒色)は現在時刻T(表示時刻)を示している。左側のたとえば赤色で表示される帯(図20で斜線表示)は、ロボット12の赤外線カメラ34にユーザ16のタグ26が反応していた時間を表している。また、この帯の上部には、当該タグ26を装着しているユーザ16のユーザ名(図20ではAさん)が表示される。この帯の右側のたとえば青色で表示される帯は、ロボット12に装着されるタグ26がユーザ16の赤外線カメラ30に反応していた時間を表している。この帯は途切れているが、これは反応がなかった時間を表している。また、この右側の青色帯の上部にも、当該赤外線カメラ30を装着しているユーザ16の名前が表示され得るが、この図20では、左側の赤色帯で表されているロボット12の赤外線カメラ34で反応しているユーザ16と同じ人物であるために、表示しないようにしている。このように、赤色帯と青色帯が同一人物に関して表示された場合には、当該人物16は、ロボット12と向き合っていることがわかる。
【0104】
また、シーン表示画面114は、モータ状態・タッチセンサ状態部118を含む。モータ状態・タッチセンサ状態部118には、インタラクションDB14のモータデータを利用して、ロボット12の姿勢がたとえば青色のフレームで表示される。これによって、表示時刻におけるロボット12の頭部76や腕などの角度からその姿勢を把握することができる。また、センサデータを利用して、タッチセンサ74が反応した部位がたとえば赤いフレームで表示される。タッチセンサ74の部位は、この実施例では、頭、右肩、右上腕、右前腕、右手先、左肩、左上腕、左前腕、左手先、胸、腹である。図20では、左前腕が赤色フレームで表示されていて、つまり、ロボット12の左前腕70Lが接触状態にあることがわかる。
【0105】
また、シーン表示画面114は、映像部120を含む。映像部120には、インタラクションDB14のビデオデータを利用して、各カメラからの映像ないし画像が表示される。具体的には、視線部120aには、ロボット12に設置された眼カメラ36のビデオデータに基づいて、ロボット12の視線方向の映像が表示される。周囲部120bには、環境に設置されたカメラ22のビデオデータに基づいて、ロボット12の周囲を撮影した映像が表示される。また、ロボット部120cには、ユーザ16に装着されたカメラ28のビデオデータに基づいて、ロボット12の様子を撮影した映像が表示される。この映像部120では、開発者等は、ロボット12の目の前の状況、ロボット12の周囲の状況、ロボット12自体の状況を、映像ないし画像によって観察することができる。
【0106】
また、シーン表示画面114は、超音波センサ部122を含む。超音波センサ部122には、インタラクションDB14のセンサデータを利用して、超音波距離センサ50の反応状況が表示される。詳しくは、超音波距離センサ50のそれぞれの出力値データに基づいて、表示時刻におけるロボット12の周囲の状態を俯瞰的に表す。超音波センサ部122では、その中央にロボット12を示す図柄が配置され、画面下方向がロボット12の正面に相当する。また、この画面の端が、実空間20におけるロボット12から所定の距離(たとえば5m)に対応する。そして、超音波距離センサ50の出力値に基づいて、反応のあった位置に対応する画面上の位置に、たとえば黄色の楕円の図柄が表示される。この超音波センサ部122では、開発者等は、たとえば障害物あるいは人間16等がロボット12の周囲にどのような状態(方向、距離)で存在しているかを把握することができる。
【0107】
また、シーン表示画面114は、モジュール部124を含む。モジュール部124には、インタラクションDB14のモジュールデータを利用して、ロボット12が以前に実行した行動モジュールの名前(モジュールID)とその結果、および現在実行中の行動モジュールの名前が表示される。また、シーン再現期間中にモジュールの遷移があった場合には、前回のモジュールの結果が表示され、遷移後のモジュール名が表示される。このモジュール部124では、開発者等は、表示時刻までのロボット12の行動の履歴や、各行動の実行によってロボット12が認識した人間16等の反応結果や、それらに基づく現在実行中の行動を把握することができる。
【0108】
また、シーン表示画面114は、音声認識部126を含む。音声認識部126には、インタラクションDB14の音声認識データを利用して、ロボット12の音声認識結果、すなわち、認識語が文字で表示される。また、その認識語の音声合成データが再生されて、開発支援装置10の内部または外部に設けられる図示しないスピーカからその音声が出力される。たとえば、音声認識を必要とする行動や、音声認識結果が重要とされるような行動の場合には、その認識結果が自律行動の推移に影響を与える。つまり、たとえば音声認識を上手く行えなかった場合には、人間16の実際の反応を認識できていないので、人間16とのインタラクションが成立しなくなるおそれがある。このように、開発者等は、この音声認識部126によって、自律行動の意思決定に用いられる情報を確認することができるし、音声認識がうまく行えたのかどうかを目と耳とで確認することができる。
【0109】
また、シーン表示画面114は、時刻指定部128を含む。時刻指定部128には、表示時刻を指定可能なスライダ130が設けられている。スライダ130は、この対話場面の開始時刻tsから終了時刻teまでの再現区間を示す水平線上に表示されている。開発者等は、マウス等の入力装置で、このスライダ130を移動操作することによって、このシーン表示画面114で再現されるインタラクションの表示時刻を指定することができる。スライダ130によって時刻が指定されたときには、各部116−128の表示がその指定時刻における状態に切り替えられる。なお、スライダ130は、操作されていない場合には、現在の表示時刻を示す位置に移動表示される。開発者等は、たとえば、再生される対話場面において問題があるような状態を見つけたときには、このスライダ130で表示時刻を指定することによって、その時刻における状態を詳細に調査することができる。また、問題の時刻の前後を指定することで、問題発生前の状態や問題発生後の状態も仔細に確認することができる。したがって、正確なデバッグタイミングを検出することができる。
【0110】
なお、時刻指定は場合によってはその数値を入力することによってなされるようにしてもよい。
【0111】
このように、シーン表示画面114では、開発者等は、対話相手16の向き、ロボット12の姿勢や接触状態、ロボット12の見ている画像、ロボット12やその周囲の画像、周囲との離れ具合、あるいは音声認識の結果など、つまり、各種センサの出力の履歴、対話中に起きた事象、自律行動の意思決定に用いた中間処理結果などを、実行されていた行動やその結果あるいは遷移後の行動などとともに確認することができる。このため、自律行動が、どのような状況や認識状態に基づいて実行されていったのかを、事後に簡単に把握することができる。したがって、各情報を個々に確認し、また複数の情報を総合的に勘案しつつ、ロボット12の自律行動に含まれる問題点、不備、あるいは誤りなどを簡単に見出すことができる。
【0112】
なお、この図20では、シーン表示画面114は、タグ状態部116、モータ状態・タッチセンサ状態部118、映像部120、超音波センサ部122、モジュール部124、音声認識部126、および時刻指定部128を含んでいたが、たとえば使用者が任意で各描画部の表示・非表示を切り替えるようにしてもよい。また、各描画部の画面上の配置は一例に過ぎず適宜変更される。また、各描画部は、たとえば別々の画面に分けて表示されてもよい。
【0113】
この開発支援装置10の動作を図21のフロー図に基づいて説明する。図21の最初のステップS71で、開発支援装置10のCPUは、メモリから検索画面データを取得して表示装置に図18に示すような検索画面110を表示する。これによって開発者等に条件入力を促す。この検索画面110で条件入力がなされて検索ボタンが操作された場合には、ステップS73で、入力情報に基づいて、対話場面抽出処理を実行する。この抽出処理の動作の一例が図22に示される。
【0114】
図22のステップS101で、検索画面110における条件入力データを取得し、ステップS103で、条件入力データに基づいてインタラクションDB14内の検索処理を実行する。この検索処理の動作の一例が図23に示される。なお、図23の検索処理は、検索条件として、モジュールとして動作A,センサ種類またはIDとしてセンサB、反応までの時間TR以内,抽出時間tが入力された場合の処理の一例である。
【0115】
図23のステップS121で、変数Taに初期値としてゼロを設定し、ステップS123で、モジュールデータを参照して、時刻Ta以降で動作Aが行われたシーンがまだ残っているかを判断する。ステップS123で“YES”であれば、ステップS125で、動作Aが行われた当該時刻を変数Taに保存し、ステップS127で、センサデータを参照して、時刻Ta以降で初めてセンサBが反応した時刻を検出して、変数Tbに保存する。
【0116】
そして、ステップS129で、動作Aが行われてからセンサBが反応するまでの時間(Tb−Ta)が、入力された反応までの時間値TRよりも大きいか否かを判断する。ステップS129で“NO”であれば、つまり、検索条件に当てはまる場合には、ステップS131で、時刻Taの前後にわたる時間tぶんの対話場面を抽出し、ステップS123へ戻る。また、ステップS129で“YES”であれば、条件を満足しないのでステップS123へ戻る。一方、ステップS123で“NO”であれば、検索処理を終了し、図22のステップS105へ戻る。
【0117】
図22に戻って、ステップS105では、検索処理の結果、条件に当てはまるインタラクションデータがあるか否かを判断し、“YES”であれば、ステップS107で、対話場面の開始時刻Ts,終了時刻Teを抽出する。たとえば、上述の検索処理からは、対話場面の中心となる時刻Taが返されるので、このTaと入力された抽出時間tとに基づいて、開始時刻Tsと終了時刻Teとを算出する。そして、ステップS105へ戻り、条件に当てはまる複数のデータがある場合にはステップS107を繰り返す。一方、ステップS105で“NO”であれば、ステップS109で、得られたすべての対話場面の開始時刻と終了時刻(Ts,Te)の組をメモリの所定領域に出力して、この対話場面抽出処理を終了し、図21のステップS75へ戻る。
【0118】
図21に戻って、ステップS75では、対話場面の選択処理を実行する。つまり、選択画面データをメモリから読み出して、抽出された対話場面の組とともに、図19に示すような選択画面112を表示装置に表示する。これにより、開発者等の選択を促す。この選択画面112で対話場面が選択されて決定ボタンが操作された場合には、ステップS77で、再現シーンの開始時刻Tsと終了時刻Teを、選択された対話場面の開始時刻Tsと終了時刻Teにする。そして、ステップS79で、設定されたシーンの開始時刻Tsと終了時刻Teとに基づいて、データ読み出し処理を実行する。このデータ読み出し処理の動作は、図24−図31に示される。
【0119】
図24には、ロボット12の赤外線カメラ34で検出したタグデータを読み出す場合のデータ読み出し処理の動作の一例が示される。まず、ステップS141では、変数T1に開始時刻Tsを設定し、ステップS143で、赤外線カメラIDがロボット12の赤外線カメラ34の識別情報に相当するタグデータを参照して、時刻T1以降に反応したタグ26があるか否かを判断する。ステップS143で“NO”であれば、ステップS163へ進む。
【0120】
一方、ステップS143で“YES”であれば、ステップS145で、当該タグIDとT1以降で最初に反応した時刻を検出して、当該時刻を新たに変数T1として保存する。そして、ステップS147で、T1以降の上記タグデータを参照して、タグ26が閾値Σ以上の間隔で反応がないか否かを判断する。ステップS147で“NO”であれば、つまり、終了時刻Teまで反応が途切れていないとみなせる場合には、ステップS149で、変数T2に終了時刻Teを設定し、ステップS151で、検出したタグID、T1、T2の値を配列Vtagに保存する。ステップS151を終了すると、ステップS161に進む。
【0121】
一方、ステップS147で“YES”であれば、ステップS153で、上記タグデータを参照して、最後にタグ26が反応した時刻、つまり、途切れたときの時刻を検出して、T2として保存する。そして、ステップS155で、検出したタグID、T1、T2の値を配列Vtagに保存する。
【0122】
続いて、ステップS157で、T1にT2の値を設定し、ステップS159で、上記タグデータを参照して、T1以降に同じタグ26が反応していた期間があるか否かを判断する。ステップS159で“YES”であれば、その反応期間の開始時刻と終了時刻とを取得すべく、ステップS145へ戻る。
【0123】
一方、ステップS159で“NO”であれば、ステップS161で、上記処理されたタグ26以外にも区間内に反応したタグ26があるか否かを判断する。ステップS161で“YES”であれば、その別のタグ26の反応時間を検出すべく、ステップS145へ戻る。一方、ステップS161で“NO”であれば、ステップS163で、保存した配列Vtagのデータを返して、この場合の処理を終了する。
【0124】
図25には、人16の赤外線カメラ30で検出したタグデータを読み出す場合のデータ読み出し処理の動作の一例が示される。まず、ステップS171では、変数T3に開始時刻Tsを設定し、ステップS173で、赤外線カメラIDがユーザ16の赤外線カメラ30の識別情報に相当するタグデータを参照して、時刻T3以降にロボット12のタグ26が反応していた赤外線カメラ30があるか否かを判断する。ステップS173で“NO”であれば、つまり、いずれのユーザ16の赤外線カメラ30のタグデータでもロボット12のタグ26のタグIDが検出されなかった場合には、ステップS193へ進む。
【0125】
一方、ステップS173で“YES”であれば、ステップS175で、当該赤外線カメラIDとT3以降で最初に反応した時刻を検出して、当該時刻を新たに変数T3として保存する。そして、ステップS177で、T3以降の当該赤外線カメラIDのタグデータを参照して、ロボット12のタグ26が閾値Σ以上の間隔で反応がないか否かを判断する。ステップS177で“NO”であれば、つまり、終了時刻Teまで反応が途切れていないとみなせる場合には、ステップS179で、変数T4に終了時刻Teを設定し、ステップS181で、赤外線カメラID、T3、T4の値を配列Rtagに保存する。ステップS181を終了すると、ステップS191に進む。
【0126】
一方、ステップS177で“YES”であれば、ステップS183で、上記タグデータを参照して、最後にタグ26が反応した時刻、つまり、途切れたときの時刻を検出して、T4として保存する。そして、ステップS185で、赤外線カメラID、T3、T4の値を配列Rtagに保存する。
【0127】
続いて、ステップS187で、T3にT4の値を設定し、ステップS189で、上記タグデータを参照して、T3以降に同じ赤外線カメラにロボット12のタグ26が反応していた期間があるか否かを判断する。ステップS189で“YES”であれば、その反応期間の開始時刻と終了時刻とを取得すべく、ステップS175へ戻る。
【0128】
一方、ステップS189で“NO”であれば、ステップS191で、上記赤外線カメラID以外にも区間内にロボット12のタグ26が反応した赤外線カメラIDがあるか否かを判断する。ステップS191で“YES”であれば、その別の赤外線カメラIDのタグデータにおけるロボット12のタグ26の反応時間を検出すべく、ステップS175へ戻る。一方、ステップS191で“NO”であれば、ステップS193で、保存した配列Rtagのデータを返して、この場合の処理を終了する。
【0129】
図26には、モータデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS201では、モータデータを参照して、区間(Ts,Te)内の各単位時間ごとに、モータ角の値(この実施例では11個)を読み出す。この読み出し時刻は単位時間ごとに進められることになる。続いて、ステップS203で、当該モータ角の値(11個)と時刻とを配列Motorに保存する。そして、ステップS205で、時刻Teまでモータデータを探査し終わったか否かを判断する。このステップS205で“YES”と判断されるまで、ステップS201とS203を繰り返し、ステップS205で“YES”であれば、この場合の処理を終了する。
【0130】
図27には、タッチセンサデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS211で、センサデータのうちセンサIDがタッチセンサ74のものを参照して、読み出し時刻において、マスク処理されたタッチセンサ74の値(1個)を取得する。たとえば、反応のないタッチセンサ74を除外し、反応のあった部位のデータを取得する。続いて、ステップS213で、その値と時刻とを配列Touchに保存する。そして、ステップS215で、時刻Teまでセンサデータを探査し終わったか否かを判断する。このステップS215で“YES”と判断されるまでステップS211とS213を繰り返し、ステップS215で“YES”であれば、この場合の処理を終了する。
【0131】
図28には、ビデオデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS221で、ビデオデータを参照して、シーン再現区間Ts〜Te内のロボット12の視線方向のビデオデータがあるか否かを判断する。ロボット12の視線方向のビデオデータは、ロボット12の眼カメラ36で撮影されたデータであるので、眼カメラ36の識別情報を示すカメラIDに関連付けられたビデオデータを探索する。また、たとえばネットワークの不具合やハードウェアの故障等の理由によってある時間だけビデオデータが取得されていない事態が考えられるので、このステップS221ではビデオデータが存在しているか否かを判定するようにしている。
【0132】
ステップS221で“YES”であれば、ステップS223で、区間内のビデオデータを抽出し、ステップS225でそれら抽出したビデオデータを連結する。上述のようにビデオデータは、所定の時間(たとえば1分間程度)ごとにファイル化されて記憶されているので、区間が複数のファイルにわたったり、ファイルの途中から始まったりすることになり得るので、区間に該当する部分をフレーム単位で求めて、それらを連結する。そして、ステップS227で、連結したビデオデータをロボット視線データファイルとしてメモリに保持する。
【0133】
ステップS227を終了し、または、ステップS221で“NO”であれば、ステップS229で、区間内のロボットの周囲を撮影したビデオデータがあるか否かを判断する。ロボット12の周囲は、インタラクションDB14の位置データに基づいて把握される。上述のように、環境に設置されるカメラ22の位置および向きは把握されているので、各カメラ22で撮影可能な領域の座標を把握することができる。開発支援装置10のメモリまたはインタラクションDB14に、各カメラ22の位置および向きデータ、あるいは各カメラ22の撮影可能範囲の座標を示すデータを予め登録しておくことによって、区間内におけるロボット12の周囲を撮影しているカメラ22を特定することができる。したがって、ステップS229では、ロボット12の周囲を撮影していると特定されたカメラ22の識別情報のビデオデータを参照し、区間内のデータが存在しているか否かを判断する。ステップS229で“YES”であれば、ステップS231で区間内のビデオデータを抽出して、ステップS233でそれらのビデオデータを連結し、ステップS235で、連結したビデオデータを周囲データファイルとしてメモリに保持する。
【0134】
ステップS235を終了し、またはステップS229で“NO”であれば、ステップS237で、区間内のロボット12の様子を撮影したビデオデータがあるか否かを判断する。ロボット12の様子を撮影したビデオデータは、ユーザ16に装着されるカメラ28で撮影されたデータであるので、まず、タグデータを参照して、区間内においてロボット12のタグ26を検出した赤外線カメラIDを検出する。検出された場合、メモリのユーザデータを参照して、その赤外線カメラIDを有するユーザ16のカメラIDを検出する。このカメラIDに関連付けられたビデオデータがロボット12の様子を撮影したビデオデータである。そして、このカメラIDに関連付けられたビデオデータを参照して、区間内のデータがあるか否かを判断する。ステップS237で“YES”であれば、ステップS239で区間内のビデオデータを抽出し、ステップS241でそれらビデオデータを連結し、ステップS243で、連結したビデオデータをユーザ視線データファイルとしてメモリに保持する。ステップS243を終了し、またはステップS237で“NO”であれば、この場合の処理を終了する。
【0135】
図29には、超音波センサデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS251では、超音波距離センサ50のセンサIDに関連付けられたセンサデータを参照して、区間内の各単位時間ごとに超音波センサの値(この実施例では24個)を読み出す。この読み出し時刻は単位時間ごとに進められることとなる。続いて、ステップS253で、当該24個の値と時刻とを配列UWSに保存する。そして、ステップS255で、時刻Teまで探査し終わったか否かを判断する。このステップS255で“YES”と判断されるまで、ステップS251およびS253を繰り返し、ステップS255で“YES”であれば、この場合の処理を終了する。
【0136】
図30には、モジュールデータの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS261で、モジュールデータを参照して、区間内において記録されている、実行されたモジュール名(モジュールID)とその結果等を読み出す。続いて、ステップS263で、そのモジュールの実行開始時刻、モジュール名、結果を配列Moduleに保存する。なお、この実施例ではモジュールデータでは実行開始時刻に関連付けてモジュール名とその結果とが記憶されているので、区間内の探査で検出した時刻が開始時刻になっている。そして、ステップS265で、時刻Teまで探査し終わったか否かを判断し、“NO”であればステップS261に戻る。一方、ステップS265で“YES”であれば、この場合の処理を終了する。
【0137】
図31には、音声認識データの場合のデータ読み出し処理の動作の一例が示される。まず、ステップS271で、音声認識データを参照して、区間内に、まだ保存されていない、つまり取得されていない音声認識結果があるか否かを判断する。ステップS271で“YES”であれば、ステップS273で、取得した音声認識の結果と時刻とを配列speechに保存して、ステップS271に戻る。ステップS271で“NO”であれば、この場合の処理を終了する。
【0138】
こうして、図24−図31のデータ読み出し処理を終了すると、図21のステップS81で、再生時刻Tにシーン再現区間の開始時刻Tsを設定し、ステップS83で、入力装置からの操作入力データに基づいて、スライダ130で時間指定があったか否かを判断する。ステップS83で“YES”であれば、ステップS85で、再生時刻Tに、スライダ指定時刻を設定して、ステップS91へ進む。スライダ指定時刻は、場面全区間を示す水平線上におけるスライダ130の位置に基づいて算出される。
【0139】
一方、ステップS83で“NO”であれば、ステップS87で、再生時刻Tが終了時刻Teに等しいか否かを判断し、“NO”であれば、ステップS89で、再生時刻Tを単位時間(たとえば1フレーム)進めて、ステップS91へ進む。一方、ステップS87で“YES”であれば、このシーンの再生が終了したので、ステップS93へ進む。
【0140】
ステップS91では、再生時刻Tにおける描画処理を実行する。この描画処理の動作は、図32−図38に示される。
【0141】
図32には、タグ状態部116(図20参照)の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS281では、中央に現在時刻Tを示す黒い横線を描画する。続いて、ステップS283で、時刻(T−t,T+t)の範囲で、Vtagに有効な値が入っているものがあるか否かを判断する。なお、表示する期間を決めるtには所定の値が設定される。ステップS283で“YES”であれば、ステップS285で、Vtagに基づいて、当該範囲内で反応がある時間帯を検出して、その時間帯を赤い帯で描画する。続いて、ステップS287で、タグIDに基づいて、当該帯に対応するタグ26の所有者16の名前をユーザデータから読み出して、最上部に表示する。
【0142】
ステップS287を終了し、またはステップS283で“NO”であれば、ステップS289で、時刻(T−t,T+t)の範囲で、Rtagに有効な値の入っているものはあるか否かを判断する。ステップS289で“YES”であれば、ステップS291で、Rtagに基づいて、当該範囲内で、反応がある時間帯を検出し、その時間帯を青い帯で描画する。
【0143】
そして、ステップS293で、描画した帯に対応する赤外線カメラ30の所有者16の名前は、既に表示されているか否かを判断する。ステップS293で“NO”であれば、当該帯に対応する赤外線カメラ30の所有者16の名前を、ユーザデータから読み出して、最上部に表示する。
【0144】
一方、ステップS293で“YES”であれば、そのままステップS297へ進む。また、ステップS289で“NO”であれば、ステップS297へ進む。
【0145】
ステップS297では、他に描画すべきデータが残っているか否かを判断し、“YES”であれば、ステップS283へ戻って、その描画すべきデータに関して、描画を行う。一方、ステップS297で“NO”であれば、この場合の処理を終了する。
【0146】
図33には、モータ状態・タッチセンサ状態部118のうちのモータ状態の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS311で、再生時刻Tについて、Motorの値を調べて、ステップS313で、そのMotorのデータに基づいて、時刻Tにおけるロボット12の姿勢を算出し、青いフレームで表示する。ロボット12の姿勢に関して、頭の姿勢は頭部モータ104の3つの値に基づいて決定される。また、右腕の上腕および前腕の姿勢は右腕モータ100の4つの値に基づいて決定される。また、左腕の上腕および前腕の姿勢は、左腕モータ102の4つの値に基づいて決定される。ステップS313を終了するとこの場合の処理を終了する。
【0147】
図34には、モータ状態・タッチセンサ状態部118のうちのタッチセンサ状態の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS321で、再生時刻Tについて、Touchの値を調べて、ステップS323で、そのTouchのデータに基づいて、時刻Tにおける反応していた部位を検出し、赤いフレームで表示する。ステップS323を終了すると、この場合の処理を終了する。
【0148】
図35には、映像部の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS331で、再生時刻Tに基づいて、当該時刻に対応するフレームにおけるロボット視線データファイルのビデオデータを表示する。これによって、映像部120のうち視線部120aが表示される。また、ステップS333で、再生時刻Tに基づいて、当該時刻に対応するフレームにおける周囲データファイルのビデオデータを表示する。これによって、映像部120のうち周囲部120bが表示される。そして、ステップS335で、時刻Tに基づいて、当該時刻に対応するフレームにおけるユーザ視線データファイルのビデオデータを表示する。これによって、映像部120のうちのロボット部120cが表示される。ステップS335を終了すると、この場合の処理を終了する。
【0149】
図36には、超音波センサ部122の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS341で、時刻Tに基づいて、UWSの値を調べて、ステップS343で、そのUWSのデータの中に閾値Σ2より小さな値があるか否かを判断する。この閾値Σ2は、超音波センサ部122の表示領域の端に相当する値が設定されている。つまり、ここでは、超音波センサ部122の表示領域内に相当する距離で反応を示す超音波センサのデータがあるかどうかを判定している。ステップS343で“YES”であれば、ステップS345で超音波センサのデータに基づく位置に、黄色の楕円を描画する。一方、ステップS343で“NO”であれば、そのままステップS347へ進む。ステップS347では、超音波センサ部122の表示領域の中心部にロボット12を示す図柄を描画する。このステップS347を終了すると、この場合の処理を終了する。
【0150】
図37には、モジュール部124の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS361で、Moduleに基づいて、時刻T−tから時刻Tまでに行われたモジュール名と結果を検出し、検出されたモジュール名とその結果を文字で表示する。続いて、ステップS363で、Moduleに基づいて、時刻Tで行われているモジュール名を検出して、そのモジュール名を文字で表示する。
【0151】
そして、ステップS365で、Moduleに基づいて、当該時刻Tにおいて、モジュールが遷移したか否かを判断し、“YES”であれば、ステップS367で、Moduleに基づいて、遷移前のモジュールの結果を検出して文字で表示し、さらに次に実行するモジュール名を検出して文字で表示する。ステップS367を終了し、またはステップS365で“NO”であれば、この場合の処理を終了する。
【0152】
図38には、音声認識部126の場合の時刻Tにおける描画処理の動作の一例が示される。まず、ステップS381で、時刻Tに基づいて、speechのデータを調べて、ステップS383で、ロボット12が時刻Tで音声認識状態になっているか否かを判断する。つまり、音声認識結果が記憶されているか否かを判断し、“YES”であれば、ステップS385で、音声認識結果のデータ(識別情報)に基づいて、当該認識語のテキストデータを、たとえばメモリに記憶される辞書データから取得して、認識語を文字で表示する。そして、ステップS387で、認識結果の音声合成データをたとえばメモリに記憶される辞書データから取得して、図示しない音声処理回路に与えて図示しないスピーカから当該音声を出力する。ステップS387を終了し、またはステップS383で“NO”であれば、この場合の処理を終了する。
【0153】
図32−図38の描画処理を終了すると、さらに時刻指定部128の描画処理を実行する。この処理の動作は図示は省略するが、再生時刻Tに基づいて、その位置にスライダ130を描画する処理が行われる。このようにして、図21のステップS91の処理によって、再生時刻Tにおける状態等を表示したシーン表示画面114のデータが生成されて、図20に示したようにそのシーン表示画面114が表示装置に表示される。
【0154】
続いて、図21のステップS93では、入力装置からの操作入力データが閲覧終了を指示するものであるか否かを判断し、“NO”であれば、ステップS83に戻り、“YES”であれば、この処理を終了する。
【0155】
この実施例によれば、人間16とロボット12とのインタラクションを記録しておき、事後に、そのインタラクションで起きた事象や、ロボット12のセンサの履歴や、自律行動の意思決定の中間の情報などを、視覚化することによって、再現することができる。したがって、ロボット12の自律的な行動に含まれる問題点を簡単に見出すことができる。
【0156】
また、使用者(開発者)の入力によって表示時刻を指定することができるので、問題点の正確なタイミングを検出することが可能であり、対話行動におけるデバッグタイミングを簡単に指定することができる。
【図面の簡単な説明】
【0157】
【図1】この発明の一実施例の開発支援装置の一例を図解図である。
【図2】インタラクションデータを取得するためのデータ取得システムの概要を示す図解図である。
【図3】データ取得システムの一例を示すブロック図である。
【図4】図3に示すコミュニケーションロボットの一例を示す外観図である。
【図5】コミュニケーションロボットの電気的な構成を示すブロック図である。
【図6】行動モジュールの内容を説明するための図解図である。
【図7】コミュニケーションロボットのデータ取得処理の動作の一例を示すフロー図である。
【図8】図3に示す中央コンピュータのデータ取得時の動作の一例を示すフロー図である。
【図9】インタラクションDBに記憶されるビデオデータの内容の一例を示す図解図である。
【図10】インタラクションDBに記憶されるモータデータの内容の一例を示す図解図である。
【図11】インタラクションDBに記憶されるセンサデータの内容の一例を示す図解図である。
【図12】インタラクションDBに記憶される位置データの内容の一例を示す図解図である。
【図13】インタラクションDBに記憶されるタグデータの内容の一例を示す図解図である。
【図14】インタラクションDBに記憶されるモジュールデータの内容の一例を示す図解図である。
【図15】インタラクションDBに記憶される音声認識データの内容の一例を示す図解図である。
【図16】図1実施例の開発支援装置のメモリに記憶されるユーザデータの内容の一例を示す図解図である。
【図17】開発支援装置のメモリに記憶されるロボットデータの内容の一例を示す図解図である。
【図18】開発支援装置で表示される検索画面の一例を示す図解図である。
【図19】開発支援装置で表示される選択画面の一例を示す図解図である。
【図20】開発支援装置で表示されるシーン表示画面の一例を示す図解図である。
【図21】開発支援装置の動作の一例を示すフロー図である。
【図22】図21の対話場面抽出処理の動作の一例を示すフロー図である。
【図23】図22のデータベース内検索処理の動作の一例を示すフロー図である。
【図24】図21のデータ読み出し処理のうちロボットの赤外線カメラで検出されたタグデータの場合の動作の一例を示すフロー図である。
【図25】図21のデータ読み出し処理のうちユーザの赤外線カメラで検出されたタグデータの場合の動作の一例を示すフロー図である。
【図26】図21のデータ読み出し処理のうちモータデータの場合の動作の一例を示すフロー図である。
【図27】図21のデータ読み出し処理のうちタッチセンサデータの場合の動作の一例を示すフロー図である。
【図28】図21のデータ読み出し処理のうちビデオデータの場合の動作の一例を示すフロー図である。
【図29】図21のデータ読み出し処理のうち超音波センサデータの場合の動作の一例を示すフロー図である。
【図30】図21のデータ読み出し処理のうちモジュールデータの場合の動作の一例を示すフロー図である。
【図31】図21のデータ読み出し処理のうち音声認識データの場合の動作の一例を示すフロー図である。
【図32】図21の時刻Tにおける描画処理のうちタグの状態の場合の動作の一例を示すフロー図である。
【図33】図21の時刻Tにおける描画処理のうちモータの状態の場合の動作の一例を示すフロー図である。
【図34】図21の時刻Tにおける描画処理のうちタッチセンサの状態の場合の動作の一例を示すフロー図である。
【図35】図21の時刻Tにおける描画処理のうち映像部の場合の動作の一例を示すフロー図である。
【図36】図21の時刻Tにおける描画処理のうち超音波センサの場合の動作の一例を示すフロー図である。
【図37】図21の時刻Tにおける描画処理のうちモジュールの場合の動作の一例を示すフロー図である。
【図38】図21の時刻Tにおける描画処理のうち音声認識の場合の動作の一例を示すフロー図である。
【符号の説明】
【0158】
10 …開発支援装置
12 …コミュニケーションロボット
14 …インタラクションDB
16 …人間
18 …データ取得システム
22,28 …カメラ
26 …赤外線LEDタグ
30,34 …赤外線カメラ
36 …眼カメラ
50 …超音波距離センサ
74 …タッチセンサ
84 …CPU
88 …メモリ
90 …モータ制御ボード
92 …センサ入力/出力ボード
94 …音声入力/出力ボード
100 …右腕モータ
102 …左腕モータ
104 …頭部モータ
114 …シーン表示画面
116 …タグ状態部
118 …モータ状態・タッチセンサ状態部
120 …映像部
122 …超音波センサ部
124 …モジュール部
126 …音声認識部
128 …時刻指定部
【特許請求の範囲】
【請求項1】
人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコミュニケーションロボット用開発支援装置であって、
対話場面の再現区間における前記情報を前記記憶手段から読み出す読出し手段、および
前記読出し手段によって読み出された前記対話場面の前記センサ出力および実行した行動に関する情報を視覚化して表示する表示手段を備える、コミュニケーションロボット用開発支援装置。
【請求項2】
前記記憶手段に記憶された情報は、前記コミュニケーションロボットの音声認識結果に関する情報をさらに含み、
前記表示手段は、前記対話場面の前記音声認識結果をさらに表示する、請求項1記載のコミュニケーションロボット用開発支援装置。
【請求項3】
ユーザの入力に応じて前記対話場面の再現区間における時刻を指定する時刻指定手段をさらに備え、
前記表示手段は、前記時刻指定手段によって時刻が指定されたとき、当該時刻における情報を視覚化して表示する、請求項1または2記載のコミュニケーションロボット用開発支援装置。
【請求項4】
ユーザによって入力された条件に基づいて前記記憶手段を検索して当該条件に対応する前記対話場面の再現区間を抽出する抽出手段をさらに備える、請求項1ないし3のいずれかに記載のコミュニケーションロボット用開発支援装置。
【請求項5】
人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコンピュータを、
対話場面の再現区間における前記情報を前記記憶手段から読み出す読出し手段、および
前記読出し手段によって読み出された前記対話場面の前記センサ出力および実行した行動に関する情報を視覚化して表示する表示手段として機能させる、コミュニケーションロボット用開発支援プログラム。
【請求項1】
人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコミュニケーションロボット用開発支援装置であって、
対話場面の再現区間における前記情報を前記記憶手段から読み出す読出し手段、および
前記読出し手段によって読み出された前記対話場面の前記センサ出力および実行した行動に関する情報を視覚化して表示する表示手段を備える、コミュニケーションロボット用開発支援装置。
【請求項2】
前記記憶手段に記憶された情報は、前記コミュニケーションロボットの音声認識結果に関する情報をさらに含み、
前記表示手段は、前記対話場面の前記音声認識結果をさらに表示する、請求項1記載のコミュニケーションロボット用開発支援装置。
【請求項3】
ユーザの入力に応じて前記対話場面の再現区間における時刻を指定する時刻指定手段をさらに備え、
前記表示手段は、前記時刻指定手段によって時刻が指定されたとき、当該時刻における情報を視覚化して表示する、請求項1または2記載のコミュニケーションロボット用開発支援装置。
【請求項4】
ユーザによって入力された条件に基づいて前記記憶手段を検索して当該条件に対応する前記対話場面の再現区間を抽出する抽出手段をさらに備える、請求項1ないし3のいずれかに記載のコミュニケーションロボット用開発支援装置。
【請求項5】
人間とコミュニケーションロボットとのインタラクションにおいて取得された少なくともセンサ出力および実行した行動に関する情報を時刻に関連付けて記憶した記憶手段を備えるコンピュータを、
対話場面の再現区間における前記情報を前記記憶手段から読み出す読出し手段、および
前記読出し手段によって読み出された前記対話場面の前記センサ出力および実行した行動に関する情報を視覚化して表示する表示手段として機能させる、コミュニケーションロボット用開発支援プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【公開番号】特開2006−123153(P2006−123153A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−318496(P2004−318496)
【出願日】平成16年11月1日(2004.11.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成16年度独立行政法人情報通信研究機構、研究テーマ「超高速知能ネットワーク社会に向けた新しいインタラクション・メディアの研究開発」に関する委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願日】平成16年11月1日(2004.11.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成16年度独立行政法人情報通信研究機構、研究テーマ「超高速知能ネットワーク社会に向けた新しいインタラクション・メディアの研究開発」に関する委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
[ Back to top ]