(57)【要約】      （修正有）【課題】単調でなくかつ矛盾の無いコミュニケーション行動を取ることができる、コミュニケーションロボットを提供する。また、多数のモジュール間の関係を簡単に把握できる、コミュニケーションロボットの開発支援装置を提供する。【解決手段】コミュニケーションロボット１０は、モジュール化した複数の行動モジュールおよび行動モジュールの基本的な実行順序を規定した複数の規則を備える。ロボット１０では、実際の行動モジュールの実行履歴すなわちロボット１０と人間とのコミュニケーション活動の履歴に基づいて、次に実行すべき行動モジュールが選択されて実行される。また、このようなロボット１０の開発支援装置１２の表示装置２２には、各行動モジュールがアイコン画像で表わされた視覚化画面が表示される。各アイコンは、各行動モジュール間の関係の強さに基づいて配置され、また、その表示形態が検索結果に基づいて区別される。【選択図】  図１
2006088328.tif 000002
【特許請求の範囲】
【請求項１】
特定状況における行動をモジュール化した複数の行動モジュールおよび前記行動モジュールの基本的な実行順序を規定した複数の規則を備え、前記複数の規則に基づいて前記複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットであって、
前記複数の行動モジュールを格納する行動モジュール記憶手段、
前記複数の規則を格納する規則記憶手段、
前記行動モジュールの実行履歴と前記複数の規則とを比較して、前記実行履歴に該当する前記規則および次に実行可能な前記行動モジュールの候補を選出する候補選出手段、
前記候補選出手段によって選出された前記候補から、次に実行する前記行動モジュールを選択する次行動選択手段、および
前記次行動選択手段によって選択された前記行動モジュールを実行する行動モジュール実行手段を備える、コミュニケーションロボット。
【請求項２】
前記複数の規則にはそれぞれ優先順位が設定されていて、
前記次行動選択手段は、適用可能な前記規則が複数競合するときにそれぞれの前記優先順位に基づいて適用する前記規則を選択する優先選択手段を含む、請求項１記載のコミュニケーションロボット。
【請求項３】
特定状況における行動をモジュール化した複数の行動モジュールおよび前記複数の行動モジュールの基本的な実行順序を規定した複数の規則を備え、前記複数の規則に基づいて前記複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置であって、
前記複数の行動モジュール間の関係を視覚化する視覚化画面を表示する画面表示手段、
前記複数の行動モジュールをそれぞれ表わす画像の前記視覚化画面上における配置を、前記複数の行動モジュール間の関係の強さに基づいて算出する配置算出手段、
指定される検索状況と前記複数の規則とを比較して、前記検索状況に該当する前記規則を選出する検索手段、
前記複数の行動モジュールの前記画像の表示形態を、前記検索状況および前記検索手段の処理による検索結果に基づいて、区別して設定する表示形態設定手段、および
算出された前記配置および設定された前記表示形態に基づいて、前記複数の行動モジュールの前記画像を前記視覚化画面上に表示する行動モジュール表示手段を備える、コミュニケーションロボット開発支援装置。
【請求項４】
前記検索手段によって選出された前記規則を表示する検索結果表示手段をさらに備える、請求項３記載のコミュニケーションロボット開発支援装置。
【請求項５】
前記コミュニケーションロボットにおける前記行動モジュールの実行に関する情報を受信する実行情報受信手段をさらに備える、請求項３または４記載のコミュニケーションロボット開発支援装置。
【請求項６】
前記規則を編集するための入力手段をさらに備える、請求項３ないし５のいずれかに記載のコミュニケーションロボット開発支援装置。
【請求項７】
前記入力手段によって作成した前記規則の編集情報を前記コミュニケーションロボットへ送信する編集情報送信手段をさらに備える、請求項６記載のコミュニケーションロボット開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はコミュニケーションロボットおよびその開発支援装置に関し、特にたとえば、特定状況における行動をモジュール化した行動モジュールを複数規定し、その行動モジュールの基本的な実行順序に関する規則を複数規定し、その複数の規則に基づいて複数の行動モジュールを実行することによって、コミュニケーション行動を取るコミュニケーションロボットおよびそのようなコミュニケーションロボットを開発するための開発支援装置に関する。
【背景技術】
【０００２】
従来、ロボットの行動をソフトウェアモジュール化し、これを実行する技術は存在している（たとえば非特許文献１参照）。
【非特許文献１】石黒，小野，今井，前田，神田，中津，「ロボビー：インタラクティブ・ヒューマノイド・ロボット（Robovie: an interactive humanoid robot）」, インダストリアル・ロボティクス（Int. J. Industrial Robotics），２００１年，第２８巻，第６号，ｐ．４９８−５０３
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のロボットでは、単調でない行動を実現するためには、ランダムな要素に基づいて行動モジュールを実行する必要があったので、そのロボット自身が過去に取って来た行動と矛盾する行動が生じてしまうおそれがあった。一方、矛盾がないように行動モジュールを起動することは、逆に行動の単調さを招くこととなってしまう。たとえば、実行する行動モジュールを予めすべて決めてしまうと、状況に拘らず決まりきった単調な行動となってしまう。このような行動の有り様は、一定範囲の環境内で予め定められた動作をする産業用ロボットとしては適当であるが、人間と多様なコミュニケーションを取るコミュニケーションロボットとしては適しているとは言い難い。
【０００４】
また、多数のモジュールが存在するロボットを開発する際に、既存のモジュール間の関係性を表現するような手段は無く、その関係を把握することは困難であった。したがって、既に実装したモジュールが有している関係を把握することなく、新たなモジュールの関係を考案して入力したり、既存の関係を変更したりせねばならず、開発が困難であった。なお、単にプログラム入力手段のみを視覚化したグラフィカルなプログラム手法は一般的にあるが、このようなグラフィカルプログラム手法においても多数のモジュール間の関係は把握できない。
【０００５】
それゆえに、この発明の主たる目的は、単調でなくかつ矛盾の無いコミュニケーション行動を取ることができる、コミュニケーションロボットを提供することである。
【０００６】
この発明の他の目的は、多数のモジュール間の関係を簡単に把握できる、コミュニケーションロボットの開発支援装置を提供することである。
【課題を解決するための手段】
【０００７】
第１の発明は、特定状況における行動をモジュール化した複数の行動モジュールおよび行動モジュールの基本的な実行順序を規定した複数の規則を備え、複数の規則に基づいて複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットであって、複数の行動モジュールを格納する行動モジュール記憶手段、複数の規則を格納する規則記憶手段、行動モジュールの実行履歴と複数の規則とを比較して、実行履歴に該当する規則および次に実行可能な行動モジュールの候補を選出する候補選出手段、候補選出手段によって選出された候補から、次に実行する行動モジュールを選択する次行動選択手段、および次行動選択手段によって選択された行動モジュールを実行する行動モジュール実行手段を備える、コミュニケーションロボットである。
【０００８】
第２の発明は、特定状況における行動をモジュール化した複数の行動モジュールおよび複数の行動モジュールの基本的な実行順序を規定した複数の規則を備え、複数の規則に基づいて複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置であって、複数の行動モジュール間の関係を視覚化する視覚化画面を表示する画面表示手段、複数の行動モジュールをそれぞれ表わす画像の視覚化画面上における配置を、複数の行動モジュール間の関係の強さに基づいて算出する配置算出手段、指定される検索状況と複数の規則とを比較して、検索状況に該当する規則を選出する検索手段、複数の行動モジュールをの画像の表示形態を、検索状況および検索手段の処理による検索結果に基づいて、区別して設定する表示形態設定手段、および算出された配置および設定された表示形態に基づいて、複数の行動モジュールの画像を視覚化画面上に表示する行動モジュール表示手段を備える、コミュニケーションロボット開発支援装置である。
【０００９】
第１の発明のコミュニケーションロボットは、複数の行動モジュールおよび行動モジュールの基本的な実行順序に関する複数の規則を備えている。行動モジュールは、たとえば、この行動モジュールを実行する前提条件，ロボットの行動を提示する指示部およびロボットの行動に対する人間の反応を認識する認識部を備えていて、前提条件を満足する場合のみ指示部が実行されて、その後認識部が実行される。このロボットでは、ロボットが現在まで行ってきたコミュニケーション行動の履歴に基づいて、次に実行する行動モジュールが選択されて実行される。つまり、候補選択手段によって、行動モジュールの実行履歴と格納されている複数の規則とが比較され、実行履歴に該当する規則が選出される。また、規則には、基本的に、特定の状況において次に行う行動モジュールが規定されており、この規定された行動モジュールが、次に実行可能な行動モジュールの候補として選出される。そして、次行動選択手段によって、選出された候補から次に実行する行動モジュールが選択される。たとえば、実行中であった行動モジュールの結果に適合する行動モジュールが選出され、かつ、行動モジュールに規定されている前提条件を満足するものが選出される。このようにして、実行履歴に基づいて選択された行動モジュールが行動モジュール実行手段によって実行される。
【００１０】
また、規則には優先順位がそれぞれ設定されていてもよい。この場合には、複数の規則が競合するときに、この優先順位に従って、適用する規則を選択することができる。
【００１１】
第２の発明の開発支援装置では、画面表示手段によって、ロボットに実装される複数の行動モジュール間の関係を視覚化する視覚化画面が表示される。この視覚化画面には、複数の行動モジュールをそれぞれ表わす画像（アイコン）が表示される。視覚化にあたっては、配置算出手段によって、行動モジュール間の関係の強さに基づいて、各行動モジュールの画像の配置が算出される。これによって、たとえば行動モジュールどうしを結び付ける規則が多く規定されているほど、関係が強くなり、視覚化画面では近くに配置される。また、表示形態設定手段によって、各行動モジュールの画像の表示形態が区別して設定される。この表示形態を区別にあたっては、指定される検索状況および検索手段による検索結果に基づいた設定がなされる。この検索手段によって、開発者であるユーザによって指定された状況に該当する規則が選出される。たとえば、この装置では、３つの検索モードを有していて、現在検索モードを選択することによって現在の状態を指定状況とした検索を行うことができ、また過去検索モードを選択することによって履歴における過去の時点の状態を指定状況とした検索を行うことができ、また、文字検索モードを選択することによって、任意の状況を入力して指定することができる。検索手段では、各検索モードでの指定状況に該当する規則が選出されることによって、その状況の次に実行可能な行動モジュールの候補が選出される。この検索手段によって、各行動モジュールが、検索モードごとの着目時点の行動モジュールに対してどのような関係性にあるか、つまり、過去に実行したものに相当するか、あるいは、次に実行するものに相当するかが明らかになる。各行動モジュールはこのような各検索モードの検索結果に基づく関係、つまり、検索モードごとの着目時点の行動モジュールに対する各行動モジュールの関係に従って区別される。たとえば、着目時点の行動モジュールには赤色で矩形状の現在アイコンが設定され、着目時点よりも過去の行動モジュールには青色で矩形状の過去アイコンが設定され、着目時点の次に実行可能な行動モジュールには緑色で矩形状の次アイコンが設定され、また、着目時点の行動モジュールに関係のない行動モジュールには灰色で小さい正方形の無関係アイコンが設定される。このようにして、行動モジュール表示手段によって、各行動モジュールの画像が算出された配置および設定された表示形態を有するようにして、視覚化画面上に表示され、各行動モジュールの関係が視覚化される。
【００１２】
また、検索結果表示手段によって、検索手段によって選出された検索結果、すなわち、指定状況に該当する規則をたとえば検索画面等に表示するようにしてもよい。この場合、開発者は規則の内容も画面で確認できる。
【００１３】
また、実行情報受信手段によって、ロボットにおける行動モジュールの実行に関する情報を受信するようにしてもよい。つまり、現在検索モードおよび過去検索モードでの視覚化にあたって必要となる情報（ロボットの実行履歴情報ならびに履歴に基づいて選出された規則および次に実行可能な行動モジュール）がロボットにおける行動の選択処理において得られるので、この情報をロボットから送信させるようにして、開発支援装置では検索処理を省略するようにする。
【００１４】
また、規則を編集（新規作成、修正または削除等）する入力手段を備える場合には、開発者は、視覚化画面を参照して行動モジュールの関係を把握しながら編集作業を行うことができる。この入力手段で編集した規則を登録することによって、規則を更新することができる。開発支援装置では、編集後の規則に基づいた各行動モジュールの関係を視覚化することができる。
【００１５】
また、入力手段よって編集した規則に関する編集情報を編集情報送信手段によって、ロボットへ送信するようにしてもよい。この場合には、ロボットでは、編集情報に従って規則が更新され、以後の行動選択処理が編集後の規則に基づいて選択されることとなる。
【発明の効果】
【００１６】
第１の発明によれば、実際の行動モジュールの実行履歴、すなわち、ロボットと人間とのコミュニケーション活動の履歴に基づいて、次に実行可能な行動モジュールが選択されて実行される。したがって、単調でなく、しかも、矛盾の無いコミュニケーション行動を取ることができる。
【００１７】
第２の発明によれば、モジュール間の関係を視覚化によって直感的に把握することができる。したがって、これら複数の行動モジュール間の関係を把握しながら、たとえば状況に矛盾がなく調和したコミュニケーション行動を実現するように、既存の規則を修正または削除したり、新たな規則を作成したりすることができる。
【００１８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１９】
図１を参照して、この実施例のコミュニケーションロボット（以下、単に「ロボット」ということがある。）１０は、人間とコミュニケーションすることを目的とした相互作用指向のコミュニケーションロボットである。コミュニケーションロボット開発支援装置（以下、単に「開発支援装置」ということがある。）１２は、このようなコミュニケーションロボット１０を開発するためのものである。
【００２０】
開発支援装置１２は、たとえばパーソナルコンピュータ（ＰＣ）またはワークステーション等のコンピュータで構成されており、たとえば図２に示すようにＣＰＵ１４を含む。ＣＰＵ１４にはバス１６を介してメモリ１８，ハードディスク装置（ＨＤＤ）２０，液晶ディスプレイまたはＣＲＴ等の表示装置２２，マウスおよびキーボード等の入力装置２４および通信回路２６が接続されている。主記憶装置としてのＨＤＤ２０には、この開発支援処理を実行するためのプログラムが格納されており、また、表示装置２２に表示される画面データ等の各種データも記憶されている。また、ＨＤＤ２０には、ロボット１０に格納されているものと同じ後述の行動モジュールおよびエピソード・ルールのデータが格納される。メモリ１８はたとえばＲＡＭ等であって、ワーキングメモリやバッファメモリとして使用される。ユーザである開発者は入力装置２４を操作することによって、画面上の各種ボタンないし設定を選択ないし入力する。通信回路２６は通信インタフェースであって、これによって開発支援装置１２はネットワークを介してまたは直接にロボット１０との間でデータ通信可能にされる。なお、開発支援装置１２とロボット１０とは有線で接続されてもよいが、ロボット１０の行動を阻害しないように無線ＬＡＮ等で無線通信するのが望ましい。無線ＬＡＮの種類およびモード等は種々のものが適用可能であり、たとえば電波方式，IrDA赤外線方式，Bluetooth方式等であってよく、またアドホックモードまたはインフラストラクチャモードを問わない。
【００２１】
ここで、まず、この開発するロボット１０について説明する。コミュニケーションロボット１０は、文字通り、人間とコミュニケーションすることを目的とした相互作用指向のロボットであり、特定タスクを制限されたエリアで実行する産業用ロボットのようなタスク指向のロボットとは異なる。このようなロボット１０は人間と多様なコミュニケーション行動を取るために、様々な状況における多数の相互作用的な行動を備えるようにされる。このような行動はモジュール化され、「行動モジュール」として実行される。また、各行動の実行順序が規則（「エピソード・ルール」と呼ぶ。）として多数規定され、長期的に首尾一貫した前後関係または調和した状況を維持しているコミュニケーション行動が実現される。つまり、ロボット１０は行動モジュールを順次実行し、行動モジュールの実行順序はエピソード・ルールによって導かれる。
【００２２】
さらに行動モジュールおよびエピソード・ルールについて詳しく説明する。行動モジュールは、図３に示すように、前提条件部，指示部および認識部を含む。行動モジュールを実行する際には、まず、前提条件部が実行されることによって、ロボット１０は、その行動モジュールが実行可能な状況であるかどうかを確認する。たとえば、天気情報をインタネットから検索することによって天気についての行動を取ることを実現する行動モジュールは、ロボット１０がインタネット接続可能でない場合には、実行可能ではなく、前提条件を満足しない。前提条件を満足する場合には、次に指示部を実行する。これにより、ロボット１０は人間と相互作用する行動を取り、具体的には発声および身ぶり等を用いて所定の行動を人間に提示する。人間はこのようなロボット１０の行動に対して何らかの反応をするであろう。たとえば、握手の行動モジュールでは、ロボット１０は「握手しよう」と言ってその手を差し出す。この場合、その人がロボット１０の行為に反応するときはその人は自分の手をロボット１０の手の周囲に伸ばすであろう。したがって、認識部は、ロボット１０の提示した行動に対して取ると予想される幾つかの人間の反応を認識するように設定される。このように、行動モジュールは特定の状況を生み出し、その後その特定状況下における人間の行動を認識することができる。行動モジュールは特定状況における対話的かつ反応的な行動としての作用−反作用ペアを実現する。
【００２３】
この実施例のロボット１０では、たとえば100を超える行動モジュールが設定され、たとえば「HELLO」（こんにちはの挨拶をして、返答を認識する），「AKUSHU」（「握手しよう」と言って手を差し出して、握手されたか認識する），「ZYAN」（「じゃんけんしよう」と言って手を出して、その周囲を凝視して人が手を出したかを認識する），「HUG」（だっこする），「FROM」（「何処から来たの」と聞いて、場所の名前を認識する）「BYE」（バイバイと言う），「TURN」（肩を叩かれたときに肩を叩いた人の方を向く），「PATROL」（パトロールといって歩き回る）等のフレンドリな行動や、「P_EYE」（目を擦るポーズ（まね）をする），「P_HEAD」（頭を掻くポーズをする）等の人間に似た特に何もしないでいる行動や、「EXPLORE」（周囲を巡回して調査する）等の日常的な仕事のような行動等を含む。
【００２４】
行動モジュールの推移ないし遷移は、図４に示すように、順次的な遷移および反応的な遷移を含み、また、反応的モジュールが稼動される場合もある。ロボット１０は現在の行動モジュールの指示部を実行した後、認識部を実行することによって人間の反応を認識する。その後、ロボット１０は、現在の行動モジュールの実行を終了し、認識結果に相当する結果値を記録して、次の実行可能な行動モジュールに推移する（図４（Ａ））。次の実行可能な行動モジュールは、現在の行動モジュールの結果値および行動モジュール実行の履歴によって決定される。この順次的な遷移はエピソード・ルールによって導かれる。また、コミュニケーションにはこのような順次的な遷移によっては解決されない問題すなわち妨害や逸脱がある。たとえば、ある人たちが話をしていて電話が鳴ったときには彼らは会話を止めて電話に応えるであろう。このような妨害および逸脱は反応的遷移および反応的モジュールによって取り扱われる。反応的遷移が現在の状況に対して決められていてかつ対応する次の行動モジュールの前提条件を満足する場合、ロボット１０は現在の行動モジュールの実行を止めてすぐに次の行動モジュールに遷移する（図４（Ｂ））。この反応的な遷移もエピソード・ルールによって導かれる。一方、反応的モジュールが稼動されるときには、ロボット１０は現在の行動モジュールの実行を止めず、これと並行して反応的モジュールを実行する（図４（Ｃ））。たとえば、ロボット１０が人と話をしていて人がロボット１０の腕に触れたとき、ロボット１０は反応的モジュールを実行することによって触れられた部分を凝視して（眼球部ないし頭部を触れられた部分に向けて）、そのことに気付いていることを知らせる。
【００２５】
エピソード・ルールは、行動モジュールの基本的な実行順序に関する規則である。基本的な実行順序とは短期的な行動の遷移ないし推移であることを意味し、たとえば数個程度の行動モジュールの繋がりないし関係であり得るが、長期（たとえば一日中）やすべての行動の推移を定めたものではない。つまり、人間の行動について、たとえば挨拶したら握手するなど、ある程度の行動の短い繋がりあるいは順序付けを定めることが可能であるが、まる一日中の行動のすべてを予め定めることは不可能であり、エピソード・ルールとしてはこのような短い繋がりないし順序付けを規定する。エピソード・ルールは、基本的には、有る状況（履歴）において次に実行する行動モジュールが規定される。また、エピソード・ルールは、次の行動モジュールの実行を抑制するための否定の規則を含む。たとえば、ロボット１０が人に何処から来たのか尋ねてその数分後にその人に同じ質問をしてしまう場合等は、状況が調和しておらず矛盾していて不適切であるので、このような不適切な行動の推移はエピソード・ルールによって抑制される。
【００２６】
エピソード・ルールは、次に示すような所定の文法に従って記述される。なお、各行動モジュールはモジュールＩＤ（Module ID）と呼ばれる独自の識別子を有している。まず、「<ModuleID=result value>」は行動モジュールの実行履歴と結果値を参照するための規則である。「<ModuleID1=result value 1><ModuleID2=result value 2>…」は前に実行された行動モジュールの順序を参照する規則を意味している。「<…>|<…>」は実行された行動モジュールの選択的グループ（“ＯＲ”）を意味している。「(…)」は行動モジュール，行動モジュールの順序または行動モジュールの選択的グループからなるブロックを意味する。「(…){n,m}」はｎ回以上ｍ回以下のブロックの繰返しを意味し、同様に「(…)*」は０回以上の繰返し、「(…)+」は１回以上の繰返しを意味する。また、「!」によって全エピソード・ルールの否定が指定される。たとえば「!<…>…<…>NextModuleID」は、このエピソード・ルールが「<…>…<…>」によって指定される現在の状況に調和するときNextModuleIDが実行されないことを意味する。また、モジュールＩＤおよび結果値の否定は「^」によって指定される。
【００２７】
この実施例では、たとえば８８０を超えるエピソード・ルールが設定されていて、たとえば「<HELLO>AKUSHU」（挨拶をしたら、握手する），「<TURN>AKUSHU」（肩を叩かれたら、握手する）「<AKUSHU=成功>ZYAN」（握手してもらえたら、じゃんけんする），「<AKUSHU=失敗>BYE」（握手してもらえなかったら、バイバイという），「<TURN><AKUSHU=成功>HUG」（肩を叩かれた後に、握手してもらえたら、だっこする），「!<TURN><AKUSHU=失敗>HELLO」（肩を叩かれた後に、握手してもらえなかったとき、あいさつをしない），「<^HELLO><AKUSHU=失敗><HELLO>ZYAN」（あいさつ以外の行動モジュールをして、握手してもらえなかった後に、あいさつしたら、じゃんけんする），「!<FROM>(<^BYE>)+FROM」（何処から来たのか聞いて、バイバイ以外の行動モジュールを１回以上繰り返しているとき、何処から来たのとは聞かない）等を含む。なお、上記エピソード・ルールの例では結果値を「成功」または「失敗」と記述しているが、これらは実際には所定の数値に置き換えて記述される。
【００２８】
エピソード・ルールは、行動モジュール間の遷移を制御することによって、ロボット１０を人間との相互作用の新たなエピソードに導く。ロボット１０では、どの行動モジュールを次に実行すべきか決定するために、すべてのエピソード・ルールが行動モジュールの実行履歴と比較される。ロボット１０は、現在の行動モジュールの実行中に比較を実行して、次に実行可能な行動モジュールのリストを作成する。現在の行動モジュールの実行の後、ロボット１０はリスト中の各行動モジュールの前提条件を確認する。前提条件が満足される場合、その行動モジュールに推移する。エピソード・ルールは優先順位を有していて、幾つかのエピソード・ルールが競合する場合には、より高い優先順位を有するエピソード・ルールが適用される。
【００２９】
図５は行動モジュールの推移の一例を示している。初期状態として、ロボット１０は「EXPLORE」によって環境を調査している。このとき、人間がロボットの肩に触れると、この状況に一致するエピソード・ルール１が適用されて、このエピソード・ルール１に従った反応的遷移が生じる。このエピソード・ルール１は、「EXPLOREが妨害されたとき、TURNを実行する」ことを規定している。ロボット１０は「TURN」を実行することによって、その人の方を向く。この指示部の行為の結果が成功、つまりたとえばその人を認識できたとき、この状況に一致するエピソード・ルール２が適用される。このエピソード・ルール２は、「TURNが成功したら、GREETを実行する」ことを規定している。ロボット１０は「GREET」を実行することによって、その人に挨拶し始める。そして、図５では、「GREET」の次に実行する行動モジュールを決定する際に、複数のエピソード・ルールが競合する一例が示される。つまり、行動モジュールの実行履歴と全エピソード・ルールとが比較される。行動モジュールの実行履歴とは、過去に実行した行動モジュールとその結果値，および現在実行中の行動モジュールのことであり、この比較によって、現在の状況に適合するエピソード・ルール３，４および５が選出される。ここで、エピソード・ルール３は「GREETが反応なしの結果に終わるとき、BYEを実行する」ことを規定し、エピソード・ルール４は「TURNが成功した後、GREETを実行したら（その結果がいずれであっても）、AKUSHUを実行する」ことを規定し、エピソード・ルール５は「EXPLOREが妨害された後、AKUSHU以外の行動モジュールを１回以上５回以下繰返しているとき、BYEを実行しない」ことを規定している。つまり、「BYE」がエピソード・ルール３によって選択される次に実行可能なモジュールの候補であり、「AKUSHU」がエピソード・ルール４によって選択される次実行可能モジュールの候補であり、エピソード・ルール５は「BYE」への遷移を抑制する。この場合、競合する各エピソード・ルールの優先順位に従って、適用するエピソード・ルールが決定されて、次に実行する行動モジュールが決定される。たとえばエピソード・ルール５の優先順位がエピソード・ルール３のそれよりも高い場合には、「BYE」は次に実行される行動モジュールではなくなる。なお、さらに優先順位が同一となるときは、次実行モジュールはたとえばランダムで決定する。
【００３０】
このロボット１０の多様なコミュニケーション行動を行うためのソフトウェア面の構成の説明をしたが、以下には、ロボット１０のハードウェア面の構成を説明する。
【００３１】
図６を参照して、ロボット１０は、台車２８を含み、この台車２８の下面には、このロボット１０を自律移動させる車輪３０が設けられる。この車輪３０は、車輪モータ（図７において参照番号「８６」で示す。）によって駆動され、台車２８すなわちロボット１０を前後左右任意の方向に動かすことができる。なお、図示しないが、この台車２８の前面には、衝突センサ（図７において、参照番号「９４」で示す。）が取り付けられ、この衝突センサは、台車２８への人や他の障害物の接触を検知する。そして、ロボット１０の移動中に障害物との接触を検知すると、直ちに車輪３０の駆動を停止してロボット１０の移動を急停止させて衝突を未然に防ぐ。
【００３２】
なお、ロボット１０の背の高さは、この実施例では、人、特に子供に威圧感をあたえることがないように、１００ｃｍ程度とされている。ただし、この背の高さは任意に変更可能である。
【００３３】
台車２８の上には、多角形柱のセンサ取付パネル３２が設けられ、このセンサ取付パネル３２の各面には、超音波距離センサ３４が取り付けられる。この超音波距離センサ３４は、取付パネル３２すなわちロボット１０の周囲の主として人との間の距離を計測するものである。
【００３４】
台車２８の上には、さらに、下部が上述の取付パネル３２に囲まれて、ロボット１０の胴体が直立するように取り付けられる。この胴体は下部胴体３６と上部胴体３８とから構成され、これら下部胴体３６および上部胴体３８は、連結部４０によって、連結される。連結部４０には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体３８の高さすなわちロボット１０の高さを変化させることができる。昇降機構は、後述のように、腰モータ（図７において参照番号「８４」で示す。）によって駆動される。上で述べたロボット１０の身長１００ｃｍは、上部胴体３８をそれの最下位置にしたときの値である。したがって、ロボット１０の身長は１００ｃｍ以上にすることができる。
【００３５】
上部胴体３８のほぼ中央には、１つの全方位カメラ４２と、１つのマイク４４とが設けられる。全方位カメラ４２は、ロボット１０の周囲を撮影するもので、後述の眼カメラ６４と区別される。マイク４４は、周囲の音、とりわけ人の声を取り込む。
【００３６】
上部胴体３８の両肩には、それぞれ、肩関節４６Ｒおよび４６Ｌによって、上腕４８Ｒおよび４８Ｌが取り付けられる。肩関節４６Ｒおよび４６Ｌは、それぞれ３軸の自由度を有する。すなわち、肩関節４６Ｒは、Ｘ軸，Ｙ軸およびＺ軸のそれぞれの軸廻りにおいて上腕４８Ｒの角度を制御できる。Ｙ軸は、上腕４８Ｒの長手方向（または軸）に並行な軸であり、Ｘ軸およびＺ軸は、そのＹ軸に、それぞれ異なる方向から直交する軸である。肩関節４６Ｌは、Ａ軸，Ｂ軸およびＣ軸のそれぞれの軸廻りにおいて上腕４８Ｌの角度を制御できる。Ｂ軸は、上腕４８Ｌの長手方向（または軸）に並行な軸であり、Ａ軸およびＣ軸は、そのＢ軸に、それぞれ異なる方向から直交する軸である。
【００３７】
上腕４８Ｒおよび４８Ｌのそれぞれの先端には、肘関節５０Ｒおよび５０Ｌを介して、前腕５２Ｒおよび５２Ｌが取り付けられる。肘関節５０Ｒおよび５０Ｌは、それぞれ、Ｗ軸およびＤ軸の軸廻りにおいて、前腕５２Ｒおよび５２Ｌの角度を制御できる。
【００３８】
なお、上腕４８Ｒおよび４８Ｌならびに前腕５２Ｒおよび５２Ｌ（いずれも図６）の変位を制御するＸ，Ｙ，Ｘ，Ｗ軸およびＡ，Ｂ，Ｃ，Ｄ軸では、「０度」がホームポジションであり、このホームポジションでは、上腕４８Ｒおよび４８Ｌならびに前腕５２Ｒおよび５２Ｌは下方向に向けられる。
【００３９】
また、図示しないが、上部胴体３８の肩関節４６Ｒおよび４６Ｌを含む肩の部分や上述の上腕４８Ｒおよび４８Ｌならびに前腕５２Ｒおよび５２Ｌには、それぞれ、タッチセンサが設けられていて、これらのタッチセンサは、人がロボット１０のこれらの部位に接触したかどうかを検知する。これらのタッチセンサも図７において参照番号９２で包括的に示す。
【００４０】
前腕５２Ｒおよび５２Ｌのそれぞれの先端には、手に相当する球体５４Ｒおよび５４Ｌがそれぞれ固定的に取り付けられる。なお、この球体５４Ｒおよび５４Ｌに代えて、この実施例のロボット１０と異なり指の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【００４１】
なお、ロボット１０の形状・寸法等は適宜に設定されるが、他の実施例では、たとえば、上部胴体３８は、前面，背面，右側面，左側面，上面および底面を含み、右側面および左側面は表面が斜め前方に向くように形成してもよい。つまり、前面の横幅が背面の横幅よりも短く、上部胴体３８を上から見た形状が台形になるように形成されてもよい。このような場合、肩関節４６Ｒおよび４６Ｌは、右側面および左側面に、その表面が左右両側面とそれぞれ平行である左右の支持部を介して取り付けられる。そして、上腕４８Ｒおよび上腕４８Ｌの回動範囲は、これら左右側面または支持部の表面（取り付け面）によって規制され、上腕４８Ｒおよび４８Ｌは取り付け面を超えて回動することはない。しかし、左右側面の傾斜角，Ｂ軸とＹ軸との間隔，上腕４８Ｒおよび４８Ｌの長さ，ならびに前腕５２Ｒおよび５２Ｌの長さ等を適宜に設定すれば、上腕４８Ｒおよび４８Ｌは前方を越えてより内側まで回動できるので、たとえＷ軸およびＤ軸による腕の自由度がなくてもロボット１０の腕は前方で交差できる。したがって、腕の自由度が少ない場合でも正面に位置する人と抱き合うなどの密接なコミュニケーション（たとえば「HUG」の行動モジュール等）を図ることができる。
【００４２】
上部胴体３８の中央上方には、首関節５６を介して、頭部５８が取り付けられる。この首関節５６は、３つの自由度を有し、Ｓ軸，Ｔ軸およびＵ軸の各軸廻りに角度制御可能である。Ｓ軸は首から真上に向かう軸であり、Ｔ軸およびＵ軸は、それぞれ、このＳ軸に対して異なる方向で直交する軸である。頭部５８には、人の口に相当する位置に、スピーカ６０が設けられる。スピーカ６０は、ロボット１０が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられる。ただし、スピーカ６０は、ロボット１０の他の部位たとえば胴体に設けられてもよい。
【００４３】
また、頭部５８には、目に相当する位置に眼球部６２Ｒおよび６２Ｌが設けられる。眼球部６２Ｒおよび６２Ｌは、それぞれ眼カメラ６４Ｒおよび６４Ｌを含む。なお、右の眼球部６２Ｒおよび左の眼球部６２Ｌをまとめて眼球部６２といい、右の眼カメラ６４Ｒおよび左の眼カメラ６４Ｌをまとめて眼カメラ６４ということもある。眼カメラ６４は、ロボット１０に接近した人の顔や他の部分ないし物体等を撮影してその映像信号を取り込む。
【００４４】
なお、上述の全方位カメラ４２および眼カメラ６４のいずれも、たとえばＣＣＤやＣＭＯＳのように個体撮像素子を用いるカメラであってよい。
【００４５】
たとえば、眼カメラ６４は眼球部６２内に固定され、眼球部６２は眼球支持部（図示せず）を介して頭部５８内の所定位置に取り付けられる。眼球支持部は、２軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部５８に対して設定される軸であり、α軸は頭部５８の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部５８の正面側（顔）が向く方向に直交する方向の軸である。この実施例では、頭部５８がホームポジションにあるとき、α軸はＳ軸に平行し、β軸はＵ軸に平行するように設定されている。このような頭部５８において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部６２ないし眼カメラ６４の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。
【００４６】
なお、眼カメラ６４の変位を制御するα軸およびβ軸では、「０度」がホームポジションであり、このホームポジションでは、図６に示すように、眼カメラ６４のカメラ軸は頭部５８の正面側（顔）が向く方向に向けられ、視線は正視状態となる。
【００４７】
図６に示すロボット１０の制御系の構成が図７のブロック図に示される。図７に示すように、このロボット１０は、全体の制御のためにマイクロコンピュータまたはＣＰＵ６６を含み、このＣＰＵ６６には、バス６８を通して、メモリ７０，モータ制御ボード７２，センサ入力／出力ボード７４および音声入力／出力ボード７６が接続される。
【００４８】
メモリ７０は、図示しないが、ＲＯＭやＲＡＭを含み、ＲＯＭにはこのロボット１０の制御プログラムが予め書き込まれているとともに、複数の行動モジュールのデータ，複数のエピソード・ルールのデータや、各行動モジュールの実行の際にスピーカ６０から発生すべき音声または声の音声データ，所定の身ぶりを示すための角度データ等が格納されている。ＲＡＭは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用され得る。
【００４９】
モータ制御ボード７２は、たとえばＤＳＰ(Digital Signal Processor)で構成され、各腕や頭部および眼球部等の各軸モータを制御する。すなわち、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、右肩関節４６ＲのＸ，ＹおよびＺ軸のそれぞれの角度を制御する３つのモータと右肘関節５０Ｒの軸Ｗの角度を制御する１つのモータとの計４つのモータ（図７ではまとめて、「右腕モータ」として示す。）７８の回転角度を調節する。また、モータ制御ボード７２は、左肩関節４６ＬのＡ，ＢおよびＣ軸のそれぞれの角度を制御する３つのモータと左肘関節５０ＬのＤ軸の角度を制御する１つのモータとの計４つのモータ（図４ではまとめて、「左腕モータ」として示す。）８０の回転角度を調節する。モータ制御ボード７２は、また、頭部５８のＳ，ＴおよびＵ軸のそれぞれの角度を制御する３つのモータ（図４ではまとめて、「頭部モータ」として示す。）８２の回転角度を調節する。モータ制御ボード７２は、また、腰モータ８４、および車輪３０を駆動する２つのモータ（図４ではまとめて、「車輪モータ」として示す。）８６を制御する。
【００５０】
さらに、モータ制御ボード７２は、右眼球部６２Ｒのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図７ではまとめて、「右眼球モータ」として示す。）８８の回転角度を調節し、また、左眼球部６２Ｌのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図４ではまとめて、「左眼球モータ」として示す。）９０の回転角度を調節する。
【００５１】
なお、この実施例の上述のモータは、車輪モータ８６を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ８６と同様に、直流モータであってよい。
【００５２】
センサ入力／出力ボード７４も、同様に、ＤＳＰで構成され、各センサやカメラからの信号を取り込んでＣＰＵ６６に与える。すなわち、超音波距離センサ３４の各々からの反射時間に関するデータがこのセンサ入力／出力ボード７４を通して、ＣＰＵ６６に入力される。また、全方位カメラ４２からの映像信号が、必要に応じてこのセンサ入力／出力ボード７４で所定の処理が施された後、ＣＰＵ６６に入力される。眼カメラ６４からの映像信号も、同様にして、ＣＰＵ６６に与えられる。なお、この図７では、図６で説明したタッチセンサは、まとめて「タッチセンサ９２」として表され、それらのタッチセンサ９２からの信号がセンサ入力／出力ボード７４を介して、ＣＰＵ６６に与えられる。
【００５３】
スピーカ６０には音声入力／出力ボード７６を介して、ＣＰＵ６６から、合成音声データが与えられ、それに応じて、スピーカ６０からはそのデータに従った音声または声が出力される。そして、マイク４４からの音声入力が、音声入力／出力ボード７６を介して、ＣＰＵ６６に取り込まれる。
【００５４】
通信ＬＡＮボード９６も、同様に、ＤＳＰで構成され、ＣＰＵ６６から送られた送信データを無線装置９８に与え、無線装置９８から送信データを送信させる。また、通信ＬＡＮボード９６は無線装置９８を介してデータを受信し、受信データをＣＰＵ６６に与える。この通信ＬＡＮボード９６および無線装置９８によって、ロボット１０はこの開発支援装置１２または有線ＬＡＮのアクセスポイント等と無線通信を行うことができ、また完成後には他のロボット１０等とも無線通信を行うことができる。
【００５５】
ロボット１０は、左右の腕部分，頭部５８および眼球部６２等の動きを制御することによって所定の身ぶりを示し、またスピーカ６０から音声を出力することによって発声して、行動モジュールの指示部を実行する。そして、ロボット１０は、カメラ４２，眼カメラ６４，マイク４４およびタッチセンサ９２等を用いて、行動モジュールの認識部の実行、すなわち人の反応の認識を行う。
【００５６】
開発支援装置１２（図１）は、上述のような行動モジュールおよびエピソード・ルールを基本的構成とするロボット１０の開発に役立つものである。開発支援装置１２は、行動モジュールの視覚化機能，エピソード・ルールの検索機能，およびエピソード・ルールの入力機能を主に備えている。
【００５７】
すなわち、開発支援装置１２は、多数の行動モジュールの実行およびこれら行動モジュール間の複雑な関係を視覚化する機能を有しており、この視覚化機能によって、多数のモジュール間の関係を大局的にかつ簡単に把握することが可能となる。また、開発支援装置１２は、実装されたエピソード・ルールを検索する機能を有し、検索条件に基づいて、該当するエピソード・ルールおよび次に実行可能な行動モジュールの候補が選出される。また、開発支援装置１２は、エピソード・ルールを入力する機能、つまり、既存のエピソード・ルールを修正し、また、新たなエピソード・ルールを作成する機能を有し、この入力機能によって、開発者はロボット１０の行動を制御するエピソード・ルールの開発を行うことができる。具体的には、既存のエピソード・ルールを部分修正したり、否定のエピソード・ルールを作成したりすることで、ロボット１２の行動を完成させる場合に特に役立つであろう。
【００５８】
開発支援装置１２では、開発支援処理が開始されると、たとえば図１２に示すようなメイン画面が表示装置２２に表示される。このメイン画面は、行動モジュールの関係が表示される視覚化画面１００を備える。図１２の視覚化画面１００には初期状態が示されており、行動モジュールの矩形状のアイコン画像が整列して表示されている。
【００５９】
また、図１２の画面右側には、実装されている行動モジュールのリストや内容説明等が表示されるモジュール画面等が、境界部分の切換ボタンによって表示／非表示の切換可能に設けられる。
【００６０】
さらに、メイン画面は、たとえば図１３に示すように、検索結果が表示される検索画面１０２を備える。なお、検索画面１０２も境界部分の切換ボタンによって表示／非表示の切換可能であり、図１２では検索画面１０２は非表示状態である。
【００６１】
検索画面１０２には、検索結果に従って、すなわち検索条件に該当するエピソード・ルールの文が該当数とともに表示される。検索モードとしては現在検索，過去検索および文字検索の３つのタイプを備えている。検索タイプは、検索画面１０２上部に設けられた現在検索ボタン１０４，過去検索ボタン１０６および文字検索ボタン１０８によって選択できる。なお、通常は現在検索が選択されている。
【００６２】
視覚化画面１００には、各検索タイプに応じた検索結果に基づいて、各行動モジュールの関係が図式的に視覚化されて表示される。つまり、各行動モジュールはアイコン化され、行動モジュールのアイコン画像が視覚化画面１００に表示される。各アイコンの配置は全行動モジュールの関係性を考慮して設定される。また、各アイコンの表示形態は、検索モードごとの着目時点に対する各行動モジュールの関係に従って区別して設定される。
【００６３】
図１３の視覚化画面１００では、現在検索モードにおける一例が示されている。行動モジュールのアイコンは、各行動モジュール間の関係の力に基づいて配置される。行動モジュール間の関係の強さは、行動モジュールどうしを結び付ける関係（エピソード・ルール）が多く規定されているほど強くなり、視覚化画面１００において互いに接近して現れることとなる。２つの行動モジュール間の関係の力は、ばねモデル方式として知られる次の式（数１）によって算出される。
【００６４】
［数１］
Ｆij＝Ｋij・Ｄij−Ｒ・Ｄij-7
ここで、iとjはそれぞれ１つの行動モジュールであり、Ｆij，ＤijおよびＫijはそれぞれ行動モジュールiとjとの間に働く力，距離およびばね定数である。また、Ｒは反発力のための定数である。
【００６５】
そして、各行動モジュールの位置は、すべての行動モジュールにおいてＦijが釣り合うように収束計算することによって算出される。
【００６６】
また、各行動モジュールのアイコンの表示形態は、たとえば色，形状および大きさ等を検索モードごとの着目時点に対する関係性に従って異ならせて設定される。
【００６７】
現在検索は現在の状態を調査するものであるから、その着目時点は現在である。したがって、現在検索では、現在実行中の行動モジュールに対する関係性によって表示形態が区別される。現在実行中の行動モジュールのアイコンには、「現在アイコン」が使用される。たとえば、現在アイコンは赤色に彩色され、矩形状で、かつ、大きく設定される。また、現在の行動モジュールよりも過去に実行した行動モジュールのアイコンには、「過去アイコン」が使用される。たとえば、過去アイコンは青色に彩色され、矩形状で、かつ、現在アイコンよりも小さい中程度の大きさに設定される。さらに、過去アイコンと現在アイコンとは、実行順序に従って、たとえば黄色い連結線で連結される。また、検索の結果得られる次に実行可能な行動モジュールの候補のアイコンには、「次アイコン」が使用される。たとえば、次アイコンは緑色に彩色され、矩形状で、かつ、現在アイコンと同程度に大きく設定される。なお、この例では、これら過去，現在および次アイコン枠内には行動モジュールのＩＤ（ModuleID）が表示されている。また、着目時点である現在の行動モジュールとは直接の関係のない残りの行動モジュールのアイコンには、「無関係アイコン」が使用される。無関係アイコンは灰色に彩色され、正方形で、かつ、非常に小さく設定される。
【００６８】
なお、図１３，１４および１５の視覚化画面１００では、現在アイコンには参照符号Ｇを、過去アイコンには参照符号Ｋを付している。また、参照符号を付してない矩形状のアイコンは、次アイコンである。
【００６９】
現在検索処理は、ロボット１０で行われる次実行モジュールの決定処理と同様のものであるため、この実施例では、ロボット１０から行動モジュールの実行履歴，該当エピソード・ルールおよび次実行可能モジュールのデータを現状情報として受信するようにしている。行動モジュールの実行履歴データは、過去に実行した行動モジュールとそれらの結果値、および現在実行中の行動モジュールを含む。具体的には、この処理では、行動モジュールの実行履歴と全エピソード・ルールとが比較されて、該当するエピソード・ルールが選出されるとともに、選出されたエピソード・ルールに基づいて、次に実行可能な行動モジュールの候補が選出される。このようにして取得した検索結果すなわち現状情報に従って、各行動モジュールの表示形態が設定されて、アイコンが視覚化画面１００に表示され、また、検索画面１０２にも、検索結果に従った該当エピソード・ルールが表示される。
【００７０】
図１４は、図１３の状態からロボット１０が次の行動に移った後の状態を示している。つまり、図１４では、図１３の次実行可能モジュール候補の中から１つの次実行モジュールが選択され実行された後の現在検索の結果が示される。具体的には、図１３で現在の行動モジュールとして現在アイコン（参照符号Ｇ）で表示されていた行動モジュール（「ASOBO」）が、図１４では過去の行動モジュールの１つとして過去アイコン（参照符号Ｋ）で表示され、図１３で次実行可能モジュールの１つとして次アイコンで表示されていた行動モジュール（「T_TSU」）が、図１４では現在の行動モジュールとして現在アイコン（参照符号Ｇ）で表示されるとともに、これら変更のあった現在アイコンと過去アイコン（「ASOBO」と「T_TSU」）とが図１４では新たに連結線で連結される。また、この状態における新たな次実行可能モジュールの候補が次アイコンで表示される。また、検索画面１０２も更新され、新たな該当エピソード・ルールが表示される。
【００７１】
過去検索は、現在までの実行履歴における過去のある時点の状態を検索するものである。過去検索では、過去の行動モジュールが指定される。つまり、たとえば、過去側に移動させる“＜”ボタン（戻ボタン）１１０および現在側に移動させる“＞”ボタン（進ボタン）１１２をクリックし、または検索ナンバ入力欄１１４に過去をたどる数を直接入力することによって、どれだけ過去にたどるかを指定することができる。そして、過去の時点における現状情報が既に現在検索処理において取得（この実施例ではロボット１０から受信）されているので、過去検索処理としては、指定された過去の時点の現状情報を参照すればよい。これによって表示に必要なデータを取得できる。
【００７２】
過去検索は履歴中のある過去の状態を調査するものであるから、その着目時点は指定される過去の時点である。したがって、過去検索では、指定される過去の行動モジュールに対する関係性によって表示形態が区別される。つまり、たとえば、指定された過去の行動モジュールは、過去検索における言わば「現在の行動モジュール」に相当し、その指定された過去の行動モジュールよりも前に実行した行動モジュールは、言わば「過去に実行した行動モジュール」に相当する。したがって、過去検索の視覚化においては、指定した過去の行動モジュールが現在アイコンに設定され、その指定過去モジュールよりも前に実行した行動モジュールが過去アイコンに設定され、検索の結果得られる次に実行可能な行動モジュールの候補が次アイコンに設定され、残りの行動モジュールが無関係アイコンに設定されて、それぞれ視覚化画面１０２に表示されることとなる。検索画面１０２には、同様に該当エピソード・ルールが表示される。
【００７３】
文字検索は、任意の状況におけるロボット１０の状態を調査するものである。文字検索では、図１５に示すように、状況入力欄１１６に直接入力することによって、状況を指定できる。そして、指定状況を検索条件とした検索が行われる。つまり、文字検索処理では、入力した状況と実装されている全エピソード・ルールとが比較され、該当するエピソード・ルールが選出されるとともに、該当エピソード・ルールに基づいて次実行可能モジュールの候補が選出される。なお、図１５では、指定状況として、「<TURN=1><AKUSHU=1>」が入力欄１１６に入力されている。
【００７４】
文字検索モードでは、指定状況の次に実行可能な行動モジュールの候補が選出されるので、その注目時点は指定された状況における最後の行動モジュールの時点である。したがって、文字検索では、指定状況の最後の行動モジュールに対する関係性によって表示形態が区別される。つまり、たとえば、指定状況のうち最後の行動モジュールは、言わば「現在の行動モジュール」に相当し、入力状況のうち最後の行動モジュール以前の行動モジュールは、言わば「過去に実行した行動モジュール」に相当する。したがって、文字検索の視覚化においては、入力状況のうちの最後の行動モジュール（この例では「AKUSHU」）が現在アイコン（参照符号Ｇ）に設定され、入力状況のうちの最後以外の行動モジュール（この例では「TURN」）が過去アイコン（参照符号Ｋ）に設定され、検索の結果得られた次実行可能モジュールの候補が次アイコンに設定され、残りの行動モジュールが無関係アイコンに設定されて、それぞれ視覚化画面１００に表示される。また、検索画面１０２には、同様に該当エピソード・ルールが表示される。
【００７５】
なお、図１５の画面右側には、コントロール画面が表示されている。このコントロール画面では各種の視覚化に関する設定を行えるようになっている。たとえば、行動モジュールのＩＤのアイコンへの表示、拡大表示、位置計算および検索エピソード・ルールの表示条件等の設定を行える。
【００７６】
このように、開発者は、現在検索モードによって、実際にロボット１０に行動を取らせながらそのコミュニケーションの状態および推移等をリアルタイムで視覚的に把握することができる。また、過去検索モードによって、ロボット１０が現在までに行った行動を振り返って確認することができる。また、文字検索モードによって、全エピソード・ルールの中から調査したい状況に該当するエピソード・ルールを確認できる。このような視覚化の結果を利用して、開発者はロボット１０の行動の推移にたとえば矛盾や不調和があって修正や変更等の必要性を感じた場合等には、入力画面を開いて、既に登録されているエピソード・ルールを修正したり、あるいは新たなエピソード・ルールを作成したりすることによって、全体的に調和した行動をとるロボット１０に仕上げていくことができる。
【００７７】
入力画面は、検索画面１０２に表示されたエピソード・ルールをたとえばダブルクリック等で選択し、または検索画面１０２に設けられた“エピソード作成”ボタン１１８を選択すること等によって、メイン画面とは別ウィンドウで表示される。この入力画面によって、ユーザは、エピソード・ルールの編集作業（修正、新規作成、削除等）を行うことができる。
【００７８】
入力画面は、たとえば図１６に示すように、エピソード・ルール文表示欄１２０，編集画面１２２および操作画面１２４を備える。エピソード・ルール文表示欄１２０は、登録欄１２０ａおよび編集欄１２０ｂを含み、登録欄１２０ａには編集のために選択された既に登録されているエピソード・ルール文が表示され、編集欄１２０ｂには編集中の状態のエピソード・ルール文が表示される。編集画面１２２には、編集中のエピソード・ルールが図式的に表示される。
【００７９】
図１６では、ＩＤナンバが４５１の「<MANUAL=255>CHARGE1」というエピソード・ルールが選択された場合の入力画面の一例が示されている。編集欄１２０ｂからわかるように、「<MANUAL=255>」と「CHARGE1」との間に行動モジュール枠を追加しようとしている。編集画面１２２では、行動モジュールまたはそのブロックは四角形のアイコンで表示され、それらは矢印のアイコンで繋げられており、このような視覚化によってエピソード・ルールの構造が容易に把握され得る。
【００８０】
操作画面１２４には、エピソード・ルールの編集のための各種操作ボタン等が設けられる。たとえば、過去挿入ボタン１２６によれば、選択されている行動モジュールの過去側に行動モジュール枠（「<>」）を追加挿入でき、また、次挿入ボタン１２８によれば、選択されている行動モジュールに対して次の行動モジュール枠を追加挿入できる。また、展開ボタン１３０によれば、編集画面１２２で選択されているアイコンがブロックであるとき、このブロック内の構成を一列下側に展開表示することができる（図１７）。図１７に示すように、展開されているブロックは元の列では開かれた本のアイコンで表示される。また、削除ボタン１３２では、選択されている行動モジュールを削除できる。また、ブロック化ボタン１３４では、選択されている行動モジュールをブロック化（「（…）」）できる。
【００８１】
さらに、操作画面１２４には、実装されている行動モジュールのＩＤおよびその結果値のリストがそれらの内容説明とともに表示される参照／説明欄が設けられる。また、ブロックおよび結果値の否定（「^」）やブロックの繰返し等の編集設定欄も設けられる。この編集設定欄において、行動モジュール，結果値，ブロックおよび結果値の否定，ブロックの繰返し等を適宜指定することによって、編集画面１２２で選択されている行動モジュール枠にその指定した内容を入力することができる。また、既に行動モジュールおよび結果値等が入力されている行動モジュール枠ないしブロックが選択された場合には、それらのＩＤや内容等が設定欄に表示される。また、操作画面１２４では、図示は省略されるが、否定（「!」）のエピソード・ルールの指定，および優先順位の設定等も行うことができる。
【００８２】
このような操作画面１２４を操作して、編集したエピソード・ルール文は編集欄１２０ｂに表示される。新規登録ボタン１３６を選択することによって、作成したエピソード・ルールを新規に登録することができる。また、修正登録ボタン１３８によれば、編集したエピソード・ルールを既存のエピソード・ルールと置き換えて登録することができる。また、登録削除ボタン１４０によれば、登録欄１２０ａに表示されている選択したエピソード・ルールの登録を削除することができる。この実施例では、エピソード・ルールの新規登録，修正登録または登録削除等の編集に関するデータは編集情報（入力情報）として作成されてロボット１０へ送信される。そして、ロボット１０では入力情報に従ってエピソード・ルールが処理され、格納される。また、終了ボタン１４２によってこの入力画面を閉じることができる。
【００８３】
具体的には、開発支援装置１２のＣＰＵ１４は、図８および図９に示すフロー図に従って開発支援処理を実行する。
【００８４】
処理が開始されると、ＣＰＵ１４は、まず、ステップＳ１で、ＨＤＤ２０から起動指示データを読み出して通信回路２６に与える。これによって、ロボット１０に起動指示データが送信される。開発中のロボット１０はこの指示データに応じて起動され活動を開始する。ロボット１０はたとえば図１０および図１１に示すフロー図に従って動作する。このロボット１０の動作については後述する。
【００８５】
次に、ステップＳ３では、ＣＰＵ１４はＨＤＤ２０からメイン画面データおよび行動モジュールのデータ等を読み出して表示装置２２にたとえば図１２に示すようなメイン画面を表示する。図１２の視覚化画面１００では、初期状態として、全行動モジュールがそれらの関係の強さに関係なく縦横に整列させて配置される。
【００８６】
続くステップＳ５，Ｓ７およびＳ９で、検索モードの種類が判断される。初期状態では現在検索モードが選択されている。検索モードは、図１３に示すように、それぞれの検索ボタン１０４，１０６および１０８で選択可能である。なお、ステップＳ５〜Ｓ９で“ＮＯ”のとき、つまり、他のボタンが選択されたとき等には、図９のステップＳ２９へ進む。
【００８７】
現在検索ボタン１０４が選択されている場合には、ステップＳ５で“ＹＥＳ”と判断して、ステップＳ１１でロボット１０から現状情報データが送信されてきたかどうかを判断する。現在検索処理は、ロボット１０において実行される次行動モジュールの選択処理（図１０のステップＳ７５およびＳ７７）と同様な処理であるため、この実施例では、ロボット１０側の処理で得られるモジュールの実行履歴，該当エピソード・ルールおよび次実行可能モジュールの候補を現状情報としてロボット１０から送信させ、開発支援装置１２では現在検索処理を省略している。ステップＳ１１で“ＮＯ”であれば、ステップＳ５に戻る。ステップＳ１１で“ＹＥＳ”であれば、続くステップＳ１３で、受信した現状情報をＨＤＤ２０に格納する。ステップＳ１３の処理を終了すると、ステップＳ１９へ進む。
【００８８】
一方、過去検索ボタン１０６が選択された場合には、ステップＳ７で“ＹＥＳ”と判断し、続くステップＳ１５で過去検索処理を実行する。具体的には、過去検索では、たとえば、戻りボタン１１０または進みボタン１１２、あるいは検索ナンバ入力欄１１４に入力された数によって過去の時点が指定されるので、この指定された過去における現状情報を、ＨＤＤ２０に格納されている現状情報から取得する。なお、過去検索は、ロボット１０が行ってきた行動を振り返って調査・確認するためのものであるので、指定される時点の現状情報が無い場合等にはたとえばエラー表示等を行うようにする。ステップＳ１５の処理を終了すると、ステップＳ１９へ進む。
【００８９】
他方、文字検索ボタン１０８が選択された場合には、ステップＳ９で“ＹＥＳ”と判断し、続くステップＳ１７で文字検索処理を実行する。具体的には、文字検索では、状況入力欄１１６に調査したい状況が指定されるので、この指定された状況を検索条件とした検索処理が実行される。すなわち、指定状況とエピソード・ルールとを比較して、該当するエピソード・ルールを選出するとともに、選出されたエピソード・ルールに規定される次の行動モジュールを、入力された状況の次に実行可能な行動モジュール候補として選出する。ステップＳ１７の処理を終了すると、ステップＳ１９へ進む。
【００９０】
そして、ステップＳ１３，Ｓ１５またはＳ１７の処理を終了すると、続くステップＳ１９で、各行動モジュールのアイコンの表示形態の設定を処理する。
【００９１】
ここで、現在検索モードの場合には、ステップＳ１３で格納した現状情報を参照してこれに基づいて表示形態の設定を行い、過去検索モードの場合には、ステップＳ１５で取得した指定時点の現状情報を参照してこれに基づいて設定を行う。また、文字検索モードの場合には、表示形態の設定前に、指定状況のうちの最後の行動モジュールを「現在の行動モジュール」として設定し、指定状況のうち最後の行動モジュール以外の行動モジュールを「過去の行動モジュール」として設定しておく。そして、表示形態設定では、現在の行動モジュールに現在アイコンを設定し、過去の行動モジュールに過去アイコンを設定し、次実行可能モジュールの候補に次アイコンを設定する。また、残りの行動モジュールに無関係アイコンを設定する。さらに、実行順序に従って過去アイコン間および過去アイコンと現在アイコンとの間に連結線を設定する。
【００９２】
続いて、ステップＳ２１で、行動モジュールの配置算出処理が必要であるかどうかを判断する。配置算出が必要となるのは、最初の表示の場合およびエピソード・ルールの更新（新規登録，修正登録または削除）があった後の最初の表示の場合である。つまり、エピソード・ルールの更新があったときは各行動モジュールの関係性が変わってしまうので配置が変わるおそれがある。したがって、これらの場合にはステップＳ２１で“ＹＥＳ”と判断し、ステップＳ２３で配置算出を処理してからステップＳ２５へ進む。
【００９３】
ステップＳ２３では、実装されている全行動モジュールの間の関係の強さに基づいて、各行動モジュールの配置が算出し、配置データをＨＤＤ２０に格納する。上述のように、各行動モジュールの位置は、すべての行動モジュールにおいて数１で示されたＦijが釣り合うように収束計算することによって算出される。
【００９４】
一方、ステップＳ２１で“ＮＯ”であれば、つまり、配置算出が必要ない場合には、既に算出された配置データ利用すればよいのでそのままステップＳ２５へ進む。
【００９５】
続いて、ステップＳ２５で、検索の結果得られた該当エピソード・ルールのデータの文および該当数等を検索画面１０２に表示する。また、ステップＳ２７で、ステップＳ２３で算出した配置およびステップＳ１９で設定した表示形態に従って、各行動モジュールのアイコンを視覚化画面１００に表示する。これらの処理によって、それぞれの検索モードでの検索結果がメイン画面の検索画面１０２および視覚化画面１００に表示される。
【００９６】
たとえば、現在検索においては、図１３に示すようなロボット１０の現在の状態が示される。そして、ロボット１０において、現在実行中の行動モジュールの実行が終了して、次実行可能モジュールの候補から次に実行する行動モジュールが選択され、その実行が開始されると、ロボット１０から新たな現状情報が送信されてくる。開発支援装置１２では、ステップＳ１１からの視覚化処理が繰返され、たとえば図１４に示すような次の現状情報に基づく視覚化がなされることとなる。このように、現在検索では、ロボット１０のコミュニケーション行動、つまり、現在までの行動履歴，現在の行動および次に実行する行動モジュールの候補や現在の状態に該当するエピソード・ルール等をリアルタイムで逐一把握することができる。したがって、現在検索では、実際のロボット１０の行動を直接および画面を通して観察することができ、ロボット１０の行動の一貫性や調和性などを総合的に判断することができる。
【００９７】
また、過去検索では、現在までに実行されたロボット１０の行動の詳細を事後的に確認することができる。つまり、過去の行動モジュールないし時点ごとに、その時点までの履歴，その時点の実行中の行動モジュールおよびその次に実行可能な行動モジュール候補やその時点の状態に該当するエピソード・ルールを振り返って視覚的に把握することができる。
【００９８】
また、文字検索では、入力指定された状況ごとにその検索条件に適合する検索結果が視覚化される（図１５）。したがって、開発中のロボット１０のエピソード・ルールの実装状態、すなわち、開発中のロボット１０が指定される特定の状況に対してどのような状態であるかを確認することができる。
【００９９】
このようにして、開発者は、たとえば開発中のロボット１０に実装しているエピソード・ルールの編集の必要性を判断することができる。たとえば、視覚化画面１００では各行動モジュールの配置が関係の強さに基づいて算出されるので、過去の行動モジュール，現在の行動モジュールおよび次の行動モジュール間の距離や方向等を基に、その状況におけるロボット１０の行動の適合性を判断してもよい。
【０１００】
ステップＳ２７の処理を終了し、または、ステップＳ５，Ｓ７およびＳ９で“ＮＯ”の場合には、図９のステップＳ２９へ進む。
【０１０１】
ステップＳ２９では、エピソード・ルールの入力（編集）が選択されたかどうかを判断する。つまり、たとえば、検索画面１０２のエピソード・ルール文が選択されたとき、またはエピソード・ルール作成ボタン１１８が選択されたとき等は、ステップＳ２９で“ＹＥＳ”と判断し、次のステップＳ３１で、入力画面（図１６）のデータをＨＤＤ２０から読み出して表示装置２２に表示する。これにより、入力画面はメイン画面上に別ウィンドウで表示され、開発者は視覚化画面１００を参照しながらエピソード・ルールの編集作業を行うことができる。
【０１０２】
この入力画面では、上述のように、開発者は、エピソード・ルールの編集作業をすることができる。つまり、たとえば行動モジュールの枠を適宜挿入したり、ブロック化したり、行動モジュール，結果値，否定，繰り返し等を設定したりして、エピソード・ルールの新規作成，修正または削除等の編集をすることができる。このようなエピソード・ルール入力があったときは、続くステップＳ３３以降の処理を実行する。ステップＳ３３では開発者の入力画面に設けられた各種操作ボタン１２６〜１３４および設定等に対する操作に応じてそれぞれのエピソード・ルールの編集処理を実行する。
【０１０３】
続いて、編集の登録があった場合には、つまり、新規登録ボタン１３６，修正登録ボタン１３８および登録削除ボタン１４０が選択された場合には、ステップＳ３５で“ＹＥＳ”と判断して、ステップＳ３７へ進む。一方、登録が無い場合には、ステップＳ３５で“ＮＯ”と判断して、図８のステップＳ５へ戻って処理を繰返す。
【０１０４】
ステップＳ３７では、編集されたエピソード・ルールの情報に従って、記憶されているエピソード・ルールのデータを更新する。新規登録の場合には作成されたエピソード・ルールのデータを新たに追加する。修正登録の場合には元のエピソード・ルールを修正されたエピソード・ルールのデータに置き換え、また、登録削除の場合にはそのエピソード・ルールのデータを削除する。そして、ステップＳ３９で、編集情報データを通信回路２６に与えてロボット１０に送信する。編集情報は、たとえば、新規，修正または削除に関する情報およびエピソード・ルールの識別子を備えていて、さらに、新規および修正の場合には作成されたエピソード・ルールを備えている。ロボット１０ではこの編集情報を受信して、これに応じてその記憶装置に格納されているエピソード・ルールのデータを更新する。したがって、これ以降は、ロボット１０では、編集されたエピソード・ルールに基づいて処理が行われることとなる。
【０１０５】
また、ステップＳ２９で“ＮＯ”であれば、ステップＳ４１で終了であるかどうかを判断する。つまり、メイン画面の図示しない終了メニューが選択された場合には“ＹＥＳ”と判断し、続くステップＳ４３で終了処理を実行して、この開発支援処理を終了する。なお、この終了処理でロボット１０に終了指示データを送信して、ロボット１０の動作を終了させるようにしてもよい。
【０１０６】
この開発支援装置１２によれば、多数のモジュール間の関係を視覚的に把握することができる。したがって、たとえば状況に矛盾がなく調和したコミュニケーション行動を実現するように、既存のエピソード・ルールを修正または削除したり、新たなエピソード・ルールを作成したりすることができる。
【０１０７】
なお、上述の実施例では、現在検索処理がロボット１０において実行される次行動モジュールの選択処理（図１０のステップＳ７５およびＳ７７）と同様な処理であるため、この処理で得られるデータを利用すべく、必要データを現状情報としてロボット１０から送信させるようにしているが、現在検索処理をこの開発支援装置１２側で行うようにしてもよいのはもちろんである。
【０１０８】
また、上述の実施例で示された各画面は一例であって適宜変更可能であるのは言うまでもない。
【０１０９】
このようにして開発されるロボット１０は、複数の行動モジュールおよび複数のエピソード・ルールを有していて、実際に取って来た行動すなわち行動モジュールの実行履歴と、実装されているエピソード・ルールとを比較することによって、次に実行する行動モジュールを選択するようにしている。また、開発中のロボット１０は、開発支援装置１２から送信されるエピソード・ルールの編集情報を受信して、この編集情報に従って、実装しているエピソード・ルールのデータを更新することができる。また、開発支援装置１２における現在検索および過去検索のための現状情報、すなわち、行動モジュールの実行履歴，現在状態に該当するエピソード・ルールおよび次に実行可能な行動モジュールの候補に関するデータを開発支援装置１２へ送信することができる。
【０１１０】
具体的には、ロボット１０はたとえば図１０および図１１に示すフロー図に従って処理を実行する。ロボット１０が起動されると、まず、ステップＳ６１で、メモリ７０から最初に行う所定の行動モジュールを読み出して選択する。この最初の行動モジュールは、たとえば上述した「EXPLORE」のように周囲環境を調査するもの等が設定され得る。
【０１１１】
次に、ステップＳ６３では、選択された行動モジュールの実行を開始する。つまり、メモリ７０から選択された行動モジュールのデータを読み出して、まず、その指示部（図３）に規定される行動を行う。たとえば、発声を伴う行動モジュールであれば、音声データを音声入出力ボード７６に与える。また、身振りを伴う行動モジュールであれば、その行動を行うためのモータ制御データをモータ制御ボード７２に与える。これによって、スピーカ６０からその音声が出力され、また、各モータが駆動されてその行動（ジェスチャ）が行われる。そして、次に、行動モジュールの認識部を実行して、ロボット１０の行動に対する人間の反応を認識し、または、人間と交流するものでない自己完結的な行動の場合はその所定の行動の達成を認識するようにしている。つまり、各センサまたはマイク４４あるいは図示しないタイマ等から得られる情報を解析して、認識部に規定された予想結果値に一致する結果を認識したかどうかを判断する。また、反応的モジュール（図４（Ｃ））の稼動に合う中断ないし逸脱を認識した場合には、反応的モジュールの実行をする。
【０１１２】
なお、ロボット１０は認識部に規定された予想結果を認識したときにその実行中の行動モジュールから次の行動モジュールに移行することとなるが、これらの処理はステップＳ８１以降で処理している。この実施例のロボット１０では、ステップＳ６３で行動モジュールの実行を開始するとともに、ステップＳ６５からステップＳ８１の処理を並行して処理している
つまり、ステップＳ６５では、終了であるかどうかを判断する。たとえば、開発中であれば開発支援装置１２から終了指示があったか、あるいは、ロボット１０を停止させるための終了ボタンが押されたかどうか等を判断する。ステップＳ６５で“ＹＥＳ”であれば、続くステップＳ６７で終了処理を実行して、ロボット１０の動作処理を終了する。この終了処理ではロボット１２の体の各部位をそれぞれのホームポジションに戻すようにしてもよい。
【０１１３】
ステップＳ６５で“ＮＯ”であれば、ステップＳ６９で、開発支援装置１２からの編集情報が無線ＬＡＮ等を通して送信されてきたかどうかを判断する。上述したように、開発支援装置１２ではエピソード・ルールの編集を入力画面で行うことができ、この編集されたエピソード・ルールのデータが送信される。ステップＳ６９で“ＹＥＳ”であれば、続くステップＳ７１でこの編集情報を受信してメモリ７０に書き込み、ステップＳ７３では、この編集情報に従って、メモリ７０に格納されているエピソード・ルールのデータを更新する。つまり、新規登録データの場合にはそのエピソード・ルールをメモリ７０に格納されているエピソード・ルールのデータに新たに追加する。修正登録データの場合にはメモリ７０に格納されているエピソード・ルールのうちの該当するエピソード・ルールを受信した修正エピソード・ルールのデータに置き換える。また、登録削除データの場合にはメモリ７０に格納されているエピソード・ルールのデータから削除対象のエピソード・ルールを削除する。このステップＳ６９からＳ７３の処理によって、ロボット１０では、編集されたエピソード・ルールのデータが実装（格納）されることとなり、これ以降は編集後のエピソード・ルールに基づいて処理が実行される。
【０１１４】
ステップＳ６９で“ＮＯ”であれば、ステップＳ７５およびＳ７７で、次に実行可能な行動モジュール候補の選出処理を実行する。具体的には、ステップＳ７５で、これまでの行動モジュールの実行履歴をエピソードとしてメモリ７０に記憶する。エピソードすなわち行動モジュールの実行履歴のデータは、過去に実行してきた行動モジュールおよびそれらの結果値のデータならびに現在実行中の行動モジュールのデータを含む。そして、続くステップＳ７７では、記憶したエピソードと、メモリ７０に実装されている全エピソード・ルールとを比較して、このエピソードに該当するエピソード・ルールを選出するとともに、選出された該当エピソード・ルールに規定されている行動モジュールを次に実行可能な行動モジュールの候補として選出する。このようにして、現在の行動モジュールの実行中に、次に実行可能な行動モジュールの候補が選出される。
【０１１５】
続くステップＳ７９で、開発中の視覚化のための現状情報データを通信ＬＡＮボード９６に与えて無線装置９８を通して開発支援装置１２へ送信する。この処理は、上述のように、ロボット１０の次行動の選出のための処理で得られるデータを開発支援装置１２の視覚化に利用するためのものである。この実施例では、現状情報は、行動モジュールの実行履歴，選出された該当エピソード・ルールおよび次実行可能行動モジュールの候補のデータを含む。開発支援装置１２では、この現状情報を受信して、上述したような各検索モードでの視覚化が行われることとなる。
【０１１６】
そして、ステップＳ８１では、行動モジュールの実行を終了するかどうかを判断する。つまり、行動モジュールの認識部に規定された予想結果値に一致する結果を、各種センサおよびスピーカ６０等で認識したかどうかを判断する。ステップＳ８１で“ＹＥＳ”であれば、図１１のステップＳ８３へ進んで、次に実行する行動モジュールを選択する処理を実行する。
【０１１７】
ステップＳ８３では、認識した結果値をメモリ７０に記憶する。この結果値は、行動モジュールの実行履歴データに使用される。
【０１１８】
続くステップＳ８５では、ステップＳ７７で選出されたエピソード・ルールおよび次実行可能行動モジュール候補の中から、認識された結果値を満足するエピソード・ルールを選出するとともに、前提条件が満足されている行動モジュールを選出する。エピソード・ルールは、現在実行中の行動モジュールが所定の結果値（図５のエピソード・ルール２では「成功」のみ）で終了したときに実行する行動モジュールが基本的に規定されているので、認識した結果値に基づいて、選出されているエピソード・ルールの適正を判断する必要がある。また、前提条件には、上述したようなインタネット接続可能であるかどうか等があるので、このような設備面での条件が整っているかも判断される。また、たとえば図５の行動モジュール「TURN」では、人が肩に触れることが前提条件であるので、認識した結果値からも前提条件が判断される。
【０１１９】
そして、ステップＳ８７では、結果値および前提条件を満足するエピソード・ルールおよび行動モジュールの候補が無いかどうかが判断される。ステップＳ８７で“ＹＥＳ”であれば、続くステップＳ８９で、所定の行動モジュールをメモリ７０から読み出して選出する。つまり、ロボット１０は、行動モジュールの実行履歴との比較から選出される次実行可能な行動モジュールの候補中に、結果値または前提条件を満足する行動モジュールが全く無い場合に実行するための行動モジュールを有している。このような行動モジュールには、たとえば「停止状態」を実現するような特定の行動モジュールが設定される。ステップＳ８９の処理を終了すると、ステップＳ９５へ進む。
【０１２０】
また、ステップＳ８７で“ＮＯ”であれば、つまり、満足する行動モジュールがある場合には、続くステップＳ９１で、複数のエピソード・ルールが競合するかどうかを判断する。つまり、適用されるエピソード・ルールが複数存在するかを判断する。ステップＳ９１で“ＹＥＳ”であれば、ステップＳ９３で、エピソード・ルールの優先順位に基づいて、適用するエピソード・ルールを選出し、この優先順位の高いエピソード・ルールに基づいて、次に実行する行動モジュールを選出する。なお、競合するエピソード・ルールの優先順位が同じ場合には、適用するエピソード・ルールをたとえばランダムに選出するようにする。また、優先順位の高いエピソード・ルールが否定のエピソード・ルールであり、かつ、競合するエピソード・ルールの次行動モジュールの実行を否定するものである場合には、ステップＳ８７と同様に、選出する行動モジュールが無い場合に相当するので、ステップＳ８９と同様にして、このような場合に実行するための所定の行動モジュールを選出するようにする。
【０１２１】
そして、ステップＳ９１で“ＮＯ”であれば、つまり、エピソード・ルールが競合しない場合であれば、あるいは、ステップＳ８９またはＳ９３の処理を終了すると、続くステップＳ９５で、選出した行動モジュールを次に実行する行動モジュールとして選択（決定）する。ステップＳ９５の処理を終了すると、図１０のステップＳ６３に戻り、処理が繰返される。したがって、ロボット１０では、ステップＳ９５で選択された次の行動モジュールの実行が開始される。このようにして、ロボット１０は、実行履歴と矛盾しない行動モジュールを順次実行して、人間とコミュニケーションを取ることができる。
【０１２２】
この実施例のロボット１０によれば、実際の行動モジュールの実行履歴すなわちロボット１０と人間とのコミュニケーションの履歴に基づいて、次に実行する行動モジュールが選択されて実行される。したがって、決まりきった単調な行動になるようなことはなく、ロボット１０の現状と調和した矛盾の無いコミュニケーション行動を取ることができる。
【０１２３】
また、新たな行動モジュールおよびエピソード・ルールを、たとえば開発支援装置１２を用いて、逐次的に追加していくことによって、大規模な行動パターンを備えたコミュニケーションロボット１０を実現することができる。
【０１２４】
なお、図１０では、開発中の処理を含んだフロー図を示しているが、この開発支援装置１２を用いて開発した後の完成されたロボット１０では、たとえば開発時にのみ必要な処理（ステップＳ６９からＳ７３およびステップＳ７９等）を処理しないまたは備えないようにしてもよい。
【図面の簡単な説明】
【０１２５】
【図１】この発明の一実施例の開発支援装置およびコミュニケーションロボットを示す図解図である。
【図２】図１実施例の開発支援装置の内部構成を示すブロック図である。
【図３】図１実施例のロボットの備える行動モジュールの構成を示す図解図である。
【図４】図１実施例の行動モジュールの遷移パターンを示す図解図である。
【図５】図１実施例のロボットの行動モジュールの遷移および適用されるエピソード・ルールの一例を示す図解図である。
【図６】図１実施例のロボットの外観を示す図解図（正面図）である。
【図７】図１実施例のロボットの内部構成を示すブロック図である。
【図８】図１実施例の開発支援装置の動作の一部を示すフロー図である。
【図９】図１実施例の開発支援装置の動作の他の一部を示すフロー図である。
【図１０】図１実施例のロボットの動作の一部を示すフロー図である。
【図１１】図１実施例のロボットの動作の他の一部を示すフロー図である。
【図１２】図１実施例の開発支援装置の表示装置に表示されるメイン画面の初期画面の一例を示す図解図である。
【図１３】図１２実施例のメイン画面の現在検索モードにおける画面の一例を示す図解図である。
【図１４】図１３実施例のメイン画面から次の行動モジュールに移行した後の画面の一例を示す図解図である。
【図１５】図１２実施例のメイン画面の文字検索モードにおける画面の一例を示す図解図である。
【図１６】図１実施例の開発支援装置の表示装置に表示される入力画面の一例を示す図解図である。
【図１７】図１６実施例の入力画面の他の一例を示す図解図である。
【符号の説明】
【０１２６】
１０  …コミュニケーションロボット
１２  …コミュニケーションロボット開発支援装置
１４  …ＣＰＵ
１８  …メモリ
２０  …ＨＤＤ
２２  …表示装置
２４  …入力装置
２６  …通信回路
６６  …ＣＰＵ
７０  …メモリ
７２  …モータ制御ボード
７４  …センサ入出力ボード
７６  …音声入出力ボード
【図１】
2006088328.tif 000003
【図２】
2006088328.tif 000004
【図３】
2006088328.tif 000005
【図４】
2006088328.tif 000006
【図５】
2006088328.tif 000007
【図６】
2006088328.tif 000008
【図７】
2006088328.tif 000009
【図８】
2006088328.tif 000010
【図９】
2006088328.tif 000011
【図１０】
2006088328.tif 000012
【図１１】
2006088328.tif 000013
【図１２】
2006088328.tif 000014
【図１３】
2006088328.tif 000015
【図１４】
2006088328.tif 000016
【図１５】
2006088328.tif 000017
【図１６】
2006088328.tif 000018
【図１７】
2006088328.tif 000019
【手続補正書】
【提出日】平成17年10月4日(2005.10.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
特定状況における行動をモジュール化した複数の行動モジュールおよび前記複数の行動モジュールの基本的な実行順序を規定した複数の規則を備え、前記複数の規則に基づいて前記複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置であって、
前記複数の行動モジュール間の関係を視覚化する視覚化画面を表示する画面表示手段、
前記複数の行動モジュールをそれぞれ表わす画像の前記視覚化画面上における配置を、前記複数の行動モジュール間の関係の強さに基づいて算出する配置算出手段、
指定される検索状況と前記複数の規則とを比較して、前記検索状況に該当する前記規則を選出する検索手段、
前記複数の行動モジュールの前記画像の表示形態を、前記検索状況および前記検索手段の処理による検索結果に基づいて、区別して設定する表示形態設定手段、および
算出された前記配置および設定された前記表示形態に基づいて、前記複数の行動モジュールの前記画像を前記視覚化画面上に表示する行動モジュール表示手段を備える、コミュニケーションロボット開発支援装置。
【請求項２】
前記検索手段によって選出された前記規則を表示する検索結果表示手段をさらに備える、請求項１記載のコミュニケーションロボット開発支援装置。
【請求項３】
前記コミュニケーションロボットにおける前記行動モジュールの実行に関する情報を受信する実行情報受信手段をさらに備える、請求項１または２記載のコミュニケーションロボット開発支援装置。
【請求項４】
前記規則を編集するための入力手段をさらに備える、請求項１ないし３のいずれかに記載のコミュニケーションロボット開発支援装置。
【請求項５】
前記入力手段によって作成した前記規則の編集情報を前記コミュニケーションロボットへ送信する編集情報送信手段をさらに備える、請求項４記載のコミュニケーションロボット開発支援装置。