(57)【要約】      （修正有）【解決手段】コミュニケーションロボットの開発を支援するためのものであり、テンプレートＤＢ３０には、たとえば行動モジュールがコミュニケーション行動の種類ごとにテンプレート化されて格納されている。テンプレート読み出し手段は、テンプレートＤＢから所望のテンプレートを読み出し、視覚化して、入力画面５００を表示する。たとえば、コミュニケーションロボットの開発者等は、この入力画面５００の引数入力領域に行動モジュールの実行に関する実行情報を入力する。行動モジュール作成手段は、テンプレート読み出し手段によって読み出されたテンプレートのデータに、入力画面の引数入力領域に入力された実行情報を取り込むことによって、新規の行動モジュールを作成する。【効果】簡単に新規のビヘイビアを作成することができる。【選択図】図８
2010253565.tif 000002
【特許請求の範囲】
【請求項１】
一連の行動プログラムからなる行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置であって、
前記行動モジュールをコミュニケーション行動の種類ごとにテンプレート化して格納するテンプレート記憶手段、
前記テンプレート記憶手段から所望のテンプレートを読み出すテンプレート読み出し手段、
前記テンプレート読み出し手段によって読み出されたテンプレートを視覚化して、引数入力領域を含む第１入力画面を表示する第１表示手段、および
前記テンプレート読み出し手段によって読み出されたテンプレートと、前記第１入力画面の前記引数入力領域に入力された実行情報とに基づいて、新規の行動モジュールを作成する行動モジュール作成手段を備える、コミュニケーションロボット開発支援装置。
【請求項２】
前記テンプレート読み出し手段によって読み出されたテンプレートと、前記第１入力画面の前記引数入力領域に入力された実行情報とを、前記行動モジュール作成手段によって作成された行動モジュールに関連付けて記憶する行動モジュール記憶手段、
前記行動モジュール記憶手段から所望の行動モジュールを読み出す行動モジュール読み出し手段、
前記行動モジュール読み出し手段によって読み出された行動モジュールに対応する、既に実行情報が入力されている引数入力領域を含む第２入力画面を表示する第２表示手段、および
前記第２入力画面の前記引数入力領域に再入力された実行情報に基づいて、前記行動モジュール読み出し手段によって読み出された行動モジュールを更新する行動モジュール更新手段をさらに備える、請求項１記載のコミュニケーションロボット開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コミュニケーションロボット開発支援装置に関し、特にたとえば、一連の行動プログラムからなる行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置に関する。
【背景技術】
【０００２】
本件出願人は、特許文献１において、コミュニケーションロボット開発支援装置を提案している。たとえば、特許文献１では、コミュニケーションロボットに備えられるコミュニケーション行動（ビヘイビア）を制御するための行動モジュール間の関係性を画面上に分かりやすく視覚化する技術が開示されている。特許文献１の技術では、行動モジュール間の関係を直感的に把握することができるので、たとえば自律的な行動のための規則の作成・編集等を適切に行えるようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−８８３２８号［Ｇ０６Ｆ  ９／０６］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術では、行動モジュールに含まれる細かい動作を開発者が逐一指定する必要があった。すなわち、全ての行動モジュールに対して、その行動モジュールに含まれる細かい動作を実行するための個々の行動プログラムを開発者が作成する必要があり、開発に余計な手間がかかっていた。
【０００５】
それゆえに、この発明の主たる目的は、新規な、コミュニケーションロボット開発支援装置を提供することである。
【０００６】
この発明の他の目的は、簡単に行動モジュールを作成することができる、コミュニケーションロボット開発支援装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明などは、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、一連の行動プログラムからなる行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置であって、行動モジュールをコミュニケーション行動の種類ごとにテンプレート化して格納するテンプレート記憶手段、テンプレート記憶手段から所望のテンプレートを読み出すテンプレート読み出し手段、テンプレート読み出し手段によって読み出されたテンプレートを視覚化して、引数入力領域を含む第１入力画面を表示する第１表示手段、およびテンプレート読み出し手段によって読み出されたテンプレートと、第１入力画面の引数入力領域に入力された実行情報とに基づいて、新規の行動モジュールを作成する行動モジュール作成手段を備える、コミュニケーションロボット開発支援装置である。
【０００９】
第１の発明では、コミュニケーションロボット開発支援装置（１０）は、コミュニケーションロボット（１２）の開発を支援するためのものであり、テンプレート記憶手段（３０）を備えている。テンプレート記憶手段には、たとえば行動モジュールがコミュニケーション行動の種類ごとにテンプレート化されて、格納されている。テンプレート読み出し手段（Ｓ３３）は、テンプレート記憶手段から所望のテンプレートを読み出す。第１表示手段（２６，Ｓ３５）は、テンプレート読み出し手段によって読み出されたテンプレートを視覚化して、入力画面（４００，５００）を表示装置（２６）に表示する。入力画面は、引数入力領域（４０４，５０４）を含み、たとえば、コミュニケーションロボットの開発者等は、この引数入力領域に行動モジュールの実行に関する実行情報を入力する。行動モジュール作成手段（Ｓ３７）は、テンプレート読み出し手段によって読み出されたテンプレートのデータに、入力画面の引数入力領域に入力された実行情報を取り込むことによって、新規の行動モジュールを作成する。
【００１０】
第１の発明によれば、簡単に新規の行動モジュールを作成することができる。
【００１１】
第２の発明は、第１の発明に従属し、テンプレート読み出し手段によって読み出されたテンプレートと、第１入力画面の引数入力領域に入力された実行情報とを、行動モジュール作成手段によって作成された行動モジュールに関連付けて記憶する行動モジュール記憶手段、行動モジュール記憶手段から所望の行動モジュールを読み出す行動モジュール読み出し手段、行動モジュール読み出し手段によって読み出された行動モジュールに対応する、既に第１情報が入力されている引数入力領域を含む第２入力画面を表示する第２表示手段、および第２入力画面の引数入力領域に再入力された第２情報に基づいて、行動モジュール読み出し手段によって読み出された行動モジュールを更新する行動モジュール更新手段をさらに備える。
【００１２】
第２の発明では、行動モジュール記憶手段（３２）によって、テンプレート読み出し手段（Ｓ３３）によって読み出されたテンプレートと、入力画面（４００，５００）の引数入力領域（４０４，５０４）に入力された実行情報とが、それらに基づいて作成された行動モジュールに関連付けて記憶される。行動モジュール読み出し手段（Ｓ４３）は、所望の行動モジュールを行動モジュール記憶手段から読み出す。第２表示手段（２６，Ｓ４５）は、行動モジュール読み出し手段によって読み出された行動モジュールに対応する第２入力画面を表示装置（２６）に表示する。第２入力画面の引数入力領域（４０４，５０４）には、この行動モジュールを作成したときの実行情報が既に入力されており、たとえば、コミュニケーションロボットの開発者等は、この引数入力領域に実行情報を再入力する。ビヘイビア更新手段（Ｓ４９）は、引数領域に再入力された実行情報に基づいて、行動モジュールを更新する。
【００１３】
第２の発明によれば、たとえば実行情報を部分的に再入力するだけで、簡単に類似の行動モジュールを作成することができる。
【発明の効果】
【００１４】
この発明によれば、行動モジュールをコミュニケーション行動の種類ごとにテンプレート化して記憶しているため、所望のテンプレートを読み出して、そのテンプレートのデータに引数としての行動モジュールの実行に関する実行情報を取り込むことによって、簡単に新規の行動モジュールを作成することができる。
【００１５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００１６】
【図１】この発明の一実施例の開発支援装置およびコミュニケーションロボットの一例を示す図解図である。
【図２】図１に示す開発支援装置の内部構成を示すブロック図である。
【図３】行動モジュールＤＢに記憶されるテーブルの一例を示す図解図である。
【図４】図１に示すコミュニケーションロボットの一例を示す外観図である。
【図５】コミュニケーションロボットの電気的な構成を示すブロック図である。
【図６】開発支援装置で表示されるコンポーザ画面の一例を示す図解図である。
【図７】開発支援装置で表示される入力画面の一例を示す図解図である。
【図８】開発支援装置で表示される入力画面の他の一例を示す図解図である。
【図９】開発支援装置の動作の一例を示すフロー図である。
【図１０】図９の行動モジュール作成・更新処理の動作の一例を示すフロー図である。
【図１１】コミュニケーションロボットの動作の一例を示すフロー図である。
【図１２】図１１のテンプレートに属するビヘイビアの実行処理のうち「Ｔａｌｋ（挨拶）」のテンプレートに属するビヘイビアの実行処理の場合の動作の一例を示すフロー図である。
【図１３】図１１のテンプレートに属するビヘイビアの実行処理のうち「Ｇｕｉｄｅ（道案内）」のテンプレートに属するビヘイビアの実行処理の動作の一例を示すフロー図である。
【図１４】図１１のテンプレートに属するビヘイビアの実行処理のうち「Ｎａｖｉ（誘導）」のテンプレートに属するビヘイビアの実行処理の動作の一例を示すフロー図である。
【発明を実施するための形態】
【００１７】
図１を参照して、この実施例のコミュニケーションロボット開発支援装置（以下、単に「開発支援装置」という。）１０は、一連の行動プログラムからなる行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボット（以下、単に「ロボット」という。）１２の開発を支援するためのものである。
【００１８】
開発支援装置１０は、パーソナルコンピュータ（ＰＣ）またはワークステーション等のコンピュータで構成されており、たとえば、図２に示すようにＣＰＵ２０を含む。ＣＰＵ２０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス２２を介して、メモリ２４、液晶ディスプレイまたはＣＲＴ等の表示装置２６、ならびに、マウスおよびキーボード等の入力装置２８に接続される。
【００１９】
メモリ２４は、図示は省略をするが、ＲＯＭ、ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、この開発支援装置１０の動作を制御するためのプログラムが記憶されており、また、表示装置２６に表示される画面データ等の各種データも記憶されている。さらに、ＲＯＭおよびＨＤＤには、ロボット１２のビヘイビアを制御するためのプログラムやデータが記憶されている。ここで、ビヘイビアとは、行動モジュールによって実現されるロボット１２のコミュニケーション行動を示しており、ＲＯＭおよびＨＤＤには、複数の行動モジュールが各ビヘイビアに対応付けて記憶されている。また、ＲＡＭは、ワークメモリやバッファメモリとして用いられる。
【００２０】
さらに、ＣＰＵ２０は、バス２２を介して複数のデータベース（以下、ＤＢ）に接続される。具体的には、ＣＰＵ２０は、テンプレートＤＢ３０および行動モジュールＤＢ３２に接続される。
【００２１】
テンプレートＤＢ３０には、行動モジュールが、たとえば「Ｔａｌｋ（挨拶）」、「Ｇｕｉｄｅ（道案内）」、「Ｎａｖｉ（誘導）」といったビヘイビアの種類ごとにテンプレート化されて、予め記憶してある。後で詳細に説明するように、ロボット１２の開発者等は、このテンプレートＤＢ３０に記憶されているテンプレートのデータ（テンプレートデータ）を読み出して、そのテンプレートデータに行動モジュールの実行に関する情報（実行情報）を与えることによって、新規の行動モジュールを作成することができる。
【００２２】
行動モジュールＤＢ３２には、テンプレートと実行情報とに基づいて作成された行動モジュールが記憶されている。一例を挙げると、図３に示すように、ロボット１２のビヘイビア（Ｂｉ）に関連付けて、テンプレート（Ｔｊ）の種類、ならびに、当該テンプレートに引数として与えられた実行情報（ａｒｇ１，ａｒｇ２，ａｒｇ３，…，ａｒｇＮ）がテーブルとして記憶される。
【００２３】
ただし、図３に示すテーブルの構成はあくまで一例であり、テーブルの構成は、本発明の技術的思想を実現できる構成であればどのようなものでもかまわない。
【００２４】
さらに、ＣＰＵ２０は、バス２２を介して通信ＬＡＮボード３４に接続される。通信ＬＡＮボード３４は、たとえばＤＳＰで構成され、ＣＰＵ２０から与えられた送信データを無線通信装置３６に与え、無線通信装置３６は送信データを、ネットワーク２００を介してロボット１２に送信する。また、通信ＬＡＮボード３４は、無線通信装置３６を介してデータを受信し、受信したデータをＣＰＵ２０に与える。
【００２５】
ここで、この開発支援装置１０によって開発を支援するロボット１２について説明する。ロボット１２は、各種センサを有するヒューマノイド型で自律移動型のものであり、身振りおよび音声の少なくとも一方を用いて、コミュニケーション行動を取ることができる。このようなロボット１２のコミュニケーション行動（ビヘイビア）を実現するためのプログラムは、上述したように、モジュール化された「行動モジュール」として実行される。また、後で詳細に説明するように、行動モジュールの実行順序は、「行動モジュールの状態遷移」として設定され、長期的に首尾一貫した前後関係または調和した状況を維持しているコミュニケーション行動が実現される。「行動モジュールの状態遷移」は、行動モジュールの短期的な遷移ないし推移を示すものであり、たとえば、数個程度の行動モジュールの繋がりないし順序付けであり得るが、長期（たとえば一日中）やすべての行動モジュールの遷移を定めたものではない。すなわち、ロボット１２は、「行動モジュール」を順次実行し、その行動モジュールの実行順序は、「行動モジュールの状態遷移」によって導かれる。
【００２６】
ただし、行動モジュールの実行順序に関する規則として「エピソード・ルール」を適用することもできる。この「エピソード・ルール」については、本件出願人が先に出願し、既に出願公開された特開２００４−１１４２４２号公報に開示されている。
【００２７】
図４を参照して、ロボット１２のハードウェア面の構成を詳細に説明する。図４に示すように、ロボット１２は台車５０を含み、台車５０の下面にはロボット１２を自律移動させる２つの車輪５２および１つの従輪５４が設けられる。２つの車輪５２は車輪モータ７６（図５参照）によってそれぞれ独立に駆動され、台車５０すなわちロボット１２を前後左右の任意方向に動かすことができる。また、従輪５４は車輪５２を補助する補助輪である。したがって、ロボット１２は、配置された空間内を自律制御によって移動可能である。ただし、ロボット１２は、或る場所に固定的に配置されても構わない。
【００２８】
台車５０の上には、円柱形のセンサ取り付けパネル５８が設けられ、このセンサ取り付けパネル５８には、多数の赤外線距離センサ６０が取り付けられる。これらの赤外線距離センサ６０は、センサ取り付けパネル５８すなわちロボット１２の周囲の物体（人間や障害物など）との距離を測定するものである。
【００２９】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。
【００３０】
センサ取り付けパネル５８の上には、胴体６２が直立するように設けられる。また、胴体６２の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ６０がさらに設けられ、ロボット１２の前方の主として人間との距離を計測する。また、胴体６２には、その側面側の上端部のほぼ中央から伸びる支柱６４が設けられ、支柱６４の上には、全方位カメラ６６が設けられる。全方位カメラ６６は、ロボット１２の周囲を撮影するものであり、後述する眼カメラ９０とは区別される。この全方位カメラ６６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ６０および全方位カメラ６６の設置位置は、当該部位に限定されず適宜変更され得る。
【００３１】
胴体６２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節６８Ｒおよび肩関節６８Ｌによって、上腕７０Ｒおよび上腕７０Ｌが設けられる。図示は省略するが、肩関節６８Ｒおよび肩関節６８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節６８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕７０Ｒの角度を制御できる。肩関節６８Ｒの或る軸（ヨー軸）は、上腕７０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節６８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕７０Ｌの角度を制御できる。肩関節６８Ｌの或る軸（ヨー軸）は、上腕７０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００３２】
また、上腕７０Ｒおよび上腕７０Ｌのそれぞれの先端には、肘関節７２Ｒおよび肘関節７２Ｌが設けられる。図示は省略するが、肘関節７２Ｒおよび肘関節７２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕７４Ｒおよび前腕７４Ｌの角度を制御できる。
【００３３】
前腕７４Ｒおよび前腕７４Ｌのそれぞれの先端には、人の手に相当する球体７６Ｒおよび球体７６Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車５０の前面、肩関節６８Ｒと肩関節６８Ｌとを含む肩に相当する部位、上腕７０Ｒ、上腕７０Ｌ、前腕７４Ｒ、前腕７４Ｌ、球体７６Ｒおよび球体７６Ｌには、それぞれ、接触センサ７８（図５で包括的に示す）が設けられる。台車５０の前面の接触センサ７８は、台車５０への人間や他の障害物の接触を検知する。したがって、ロボット１２は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪５２の駆動を停止してロボット１２の移動を急停止させることができる。また、その他の接触センサ７８は、当該各部位に触れたかどうかを検知する。なお、接触センサ７８の設置位置は、当該部位に限定されず、適宜な位置（人の胸、腹、脇、背中および腰に相当する位置）に設けられてもよい。
【００３４】
胴体６２の中央上部（人の首に相当する位置）には首関節８０が設けられ、さらにその上には頭部８２が設けられる。図示は省略するが、首関節８０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１２の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００３５】
頭部８２には、人の口に相当する位置に、スピーカ８４が設けられる。スピーカ８４は、ロボット１２が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク８６Ｒおよびマイク８６Ｌが設けられる。以下、右のマイク８６Ｒと左のマイク８６Ｌとをまとめてマイク８６ということがある。マイク８６は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部８８Ｒおよび眼球部８８Ｌが設けられる。眼球部８８Ｒおよび眼球部８８Ｌは、それぞれ眼カメラ９０Ｒおよび眼カメラ９０Ｌを含む。以下、右の眼球部８８Ｒと左の眼球部８８Ｌとをまとめて眼球部８８ということがある。また、右の眼カメラ９０Ｒと左の眼カメラ９０Ｌとをまとめて眼カメラ９０ということがある。
【００３６】
眼カメラ９０は、ロボット１２に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ９０は、上述した全方位カメラ６６と同様のカメラを用いることができる。たとえば、眼カメラ９０は、眼球部８８内に固定され、眼球部８８は、眼球支持部（図示せず）を介して頭部８２内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部８２の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部８２の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部８８ないし眼カメラ９０の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ８４、マイク８６および眼カメラ９０の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００３７】
このように、この実施例のロボット１２は、車輪５２の独立２軸駆動、肩関節６８の３自由度（左右で６自由度）、肘関節７２の１自由度（左右で２自由度）、首関節８０の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００３８】
図５はロボット１２の電気的な構成を示すブロック図である。この図５を参照して、ロボット１２は、ＣＰＵ１００を含む。ＣＰＵ１００は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス１０２を介して、メモリ１０４、モータ制御ボード１０６、センサ入力／出力ボード１０８および音声入力／出力ボード１１０に接続される。
【００３９】
メモリ１０４は、図示は省略をするが、ＲＯＭ、ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、開発支援装置１０のメモリ２４に記憶されているものと同じ、このロボット１２のビヘイビアを制御するためのプログラム（行動モジュール）が各ビヘイビアに対応付けて記憶されている。さらに、ＲＯＭおよびＨＤＤには、テンプレートＤＢ３０に記憶されているものと同じ、「Ｔａｌｋ（挨拶）」、「Ｇｕｉｄｅ（道案内）」、「Ｎａｖｉ（誘導）」といった、ビヘイビアの種類ごとにテンプレート化された行動モジュールが記憶されている。また、ＲＡＭは、ワークメモリやバッファメモリとして用いられる。
【００４０】
モータ制御ボード１０６は、たとえばＤＳＰで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード１０６は、ＣＰＵ１００からの制御データを受け、右眼球部８８Ｒの２軸のそれぞれの角度を制御する２つのモータ（図５では、まとめて「右眼球モータ１１２」と示す）の回転角度を制御する。同様にして、モータ制御ボード１０６は、ＣＰＵ１００からの制御データを受け、左眼球部８８Ｌの２軸のそれぞれの角度を制御する２つのモータ（図５では、まとめて「左眼球モータ１１４」と示す）の回転角度を制御する。
【００４１】
また、モータ制御ボード１０６は、ＣＰＵ１００からの制御データを受け、肩関節６８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節７２Ｒの角度を制御する１つのモータとの計４つのモータ（図５では、まとめて「右腕モータ１１６」と示す）の回転角度を制御する。同様にして、モータ制御ボード１０６は、ＣＰＵ１００からの制御データを受け、肩関節６８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節７２Ｌの角度を制御する１つのモータとの計４つのモータ（図５では、まとめて「左腕モータ１１８」と示す）の回転角度を制御する。
【００４２】
さらに、モータ制御ボード１０６は、ＣＰＵ１００からの制御データを受け、首関節８０の直交する３軸のそれぞれの角度を制御する３つのモータ（図５では、まとめて「頭部モータ１３０」と示す）の回転角度を制御する。そして、モータ制御ボード１０６は、ＣＰＵ１００からの制御データを受け、車輪５２を駆動する２つのモータ（図５では、まとめて「車輪モータ７６」と示す）の回転角度を制御する。なお、この実施例では、車輪モータ７６を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ７６と同様に直流モータを用いるようにしてもよい。また、ロボット１２の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【００４３】
センサ入力／出力ボード１０８は、モータ制御ボード１０６と同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ１００に与える。すなわち、赤外線距離センサ６０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード１０８を通じてＣＰＵ１００に入力される。また、全方位カメラ６６からの映像信号が、必要に応じてセンサ入力／出力ボード１０８で所定の処理を施してからＣＰＵ１００に入力される。眼カメラ９０からの映像信号も、同様にして、ＣＰＵ１００に入力される。また、上述した複数の接触センサ７８（図５では、まとめて「接触センサ７８」と示す）からの信号がセンサ入力／出力ボード１０８を介してＣＰＵ１００に与えられる。音声入力／出力ボード１１０もまた、同様に、ＤＳＰで構成され、ＣＰＵ１００から与えられる音声合成データに従った音声または声がスピーカ８４から出力される。また、マイク８６からの音声入力が、音声入力／出力ボード１１０を介してＣＰＵ１００に与えられる。
【００４４】
また、ＣＰＵ１００は、バス１０２を介して通信ＬＡＮボード１３２に接続される。通信ＬＡＮボード１３２は、たとえばＤＳＰで構成され、ＣＰＵ１００から与えられた送信データを無線通信装置１３４に与え、無線通信装置１３４は送信データを、ネットワーク２００を介して開発支援装置１０に送信する。また、通信ＬＡＮボード１３２は、無線通信装置１２４を介してデータを受信し、受信したデータをＣＰＵ１００に与える。
【００４５】
開発支援装置１０は、上述のようなロボット１２の開発に役立つものである。具体的には、開発支援装置１０は、テンプレートと当該テンプレートに引数として与えられる実行情報とに基づいて、新規の行動モジュールを作成する機能を有しており、たとえば、この開発支援装置１０を用いて行動モジュールを逐次的に追加していくことによって、大規模な行動パターンを備えたロボット１２を実現することができる。
【００４６】
開発支援装置１０では、開発支援処理が開始されると、たとえば図６に示すようなコンポーザ画面３００が表示装置２６に表示される。ただし、この実施例で示す各画面は一例であって適宜変更可能である。
【００４７】
このコンポーザ画面３００では、ロボット１２の開発者等は、行動モジュールの状態遷移を設定することができる。コンポーザ画面３００は、視覚化画面３０２を含み、この視覚化画面３０２には、行動モジュールの状態遷移が図式的に視覚化されて表示される。具体的には、視覚化画面３０２では、行動モジュールに対応するビヘイビアが矩形状のアイコン（ビヘイビアアイコン）で表示され、このビヘイビアアイコンの下部には、当該ビヘイビアの名称がテキスト（文字）で表示される。また、詳細な説明は省略するが、視覚化画面３０２では、行動モジュールの遷移を示す矢印線（遷移線）、スタートアイコン、エンドアイコン等が表示されており、このような視覚化によって行動モジュールの遷移ないし推移が容易に把握され得る。
【００４８】
また、図６の視覚化画面３０２右側には、リスト画面３０４が設けられる。リスト画面３０４は、領域３０６、および領域３０８を含み、このリスト画面３０４には、ビヘイビアの名称のリストがマウスなどの入力装置２８によるドラッグ・アンド・ドロップ操作の対象オブジェクト（ビヘイビアオブジェクト）として表示される。具体的には、ロボット１２の開発者等がマウスなどの入力装置２８を操作して、リスト画面３０４のビヘイビアオブジェクトをドラッグし、そして視覚化画面３０２でこれをドロップすると、そのビヘイビアに対応するビヘイビアアイコンが視覚化画面３０２に描画されることとなる。
【００４９】
たとえば、領域３０６には、「Ａｋｕｓｈｕ（握手）」、「Ｈｕｇ（抱き合う）」や「Ｊｙａｎ（じゃんけん）」などの、テンプレート化されていない行動モジュール、すなわちテンプレートに基づいた作成・更新処理を行うことのできない行動モジュールに対応するビヘイビアオブジェクトが表示される。
【００５０】
領域３０８には、「Ｔａｌｋ（挨拶）」、「Ｇｕｉｄｅ（道案内）」、「Ｎａｖｉ（誘導）」などの、テンプレート化されている行動モジュール、すなわちテンプレートに基づいた作成・更新処理を行うことのできる行動モジュールに対応するビヘイビアオブジェクトが当該ビヘイビアが属するテンプレートごとに分類されて表示される。
【００５１】
また、各テンプレートの下部には、“追加”ボタンが設けられており、この“追加”ボタンをマウスなどの入力装置２８で選択することによって、このテンプレートに対応する入力画面４００，５００を表示することができる。
【００５２】
図７および図８に示す入力画面４００，５００は、テンプレートを視覚化して表示したものであり、上述したように、リスト画面３０４に表示されている“追加”ボタンをマウスなどの入力装置２８で選択することによって、コンポーザ画面３００とは別ウィンドウで表示される。
【００５３】
この入力画面４００，５００では、ロボット１２の開発者等は、行動モジュールの実行に関する情報（実行情報）を引数として入力することによって、テンプレートと実行情報とに基づいた新規の行動モジュールを作成することができる。たとえば、図７は、「Ｔａｌｋ（挨拶）」のテンプレートを視覚化した入力画面４００であり、図８は、「Ｇｕｉｄｅ（道案内）」のテンプレートを視覚化した入力画面５００である。
【００５４】
先ず、図７を参照して、「Ｔａｌｋ（挨拶）」の入力画面４００について説明する。
【００５５】
図７に示す入力画面４００は、領域４０２ａ、領域４０２ｂ、領域４０２ｃ（引数入力領域４０４）、ならびに領域４０２ｄを含み、この領域４０２ａ―４０２ｄの下部には、“了解”ボタン４０６、“キャンセル”ボタン４０８、ならびに“クリア”ボタン４１０が設けられる。
【００５６】
領域４０２ａには、テンプレートの名称が表示される。図７に示す例では、このビヘイビアが「Ｔａｌｋ（挨拶）」のテンプレートに属していることが示される。
【００５７】
領域４０２ｂには、ビヘイビアの名称が表示される。図７に示す例では、このビヘイビアの名称が「こんにちは」であることが示される。
【００５８】
領域４０２ｃには、この「Ｔａｌｋ（挨拶）」のテンプレートに引数として入力された実行情報が表示される。すなわち、領域４０２ｃは、引数入力領域４０４として機能する。たとえば、実行情報は、ロボットの発話内容に対応するテキスト（文字）データであり、ロボット１２の開発者等がキーボードなどの入力装置２８を用いて直接手入力する方法等が考えられる。図７に示す例では、ロボット１２が「こんにちは。ようこそ。」と発話することが示される。
【００５９】
領域４０２ｄには、ビヘイビアの説明等が表示される。たとえば、領域４０２ｄには、「頭部を対話相手の顔位置に向け、“こんにちは。ようこそ。”と発話しながら、腕を適宜振る」といった、ビヘイビアの解説（説明文）が表示される。
【００６０】
また、次に、図８を参照して、「Ｇｕｉｄｅ（道案内）」のテンプレートの入力画面５００について説明する。
【００６１】
図８に示すエディット画面５００は、領域５０２ａ、領域５０２ｂ、領域５０２ｃ（引数入力領域５０４ａ）、領域５０２ｄ（引数入力領域５０４ｂ）、領域５０２ｅ（引数入力領域５０４ｃ）、領域５０２ｆ（引数入力領域５０４ｄ）、領域５０２ｇ（引数入力領域５０４ｅ）、ならびに領域５０２ｈを含み、この領域５０２ａ―５０２ｈの下部には、“了解”ボタン５０６、“キャンセル”ボタン５０８、ならびに“クリア”ボタン５１０が設けられる。
【００６２】
領域５０２ａには、テンプレートの名称が表示される。図８に示す例では、このビヘイビアが「Ｇｕｉｄｅ（道案内）」のテンプレートに属していることが示される。
【００６３】
領域５０２ｂには、ビヘイビアの名称が表示される。図８に示す例では、このビヘイビアの名称が「マイルズへ」であることが示される。
【００６４】
領域５０２ｃには、この「Ｇｕｉｄｅ（道案内）」のテンプレートに引数として与えられた実行情報が表示される。すなわち、領域５０２ｃは、引数入力領域５０４ａとして機能する。たとえば、実行情報は、ロボットの発話内容に対応するテキストデータであり、ロボット１２の開発者等がキーボードなどの入力装置２８を用いて直接手入力する方法等が考えられる。図８に示す例では、ロボット１２は、「○○（案内地点名）は」と発話することが示される。
【００６５】
領域５０２ｄには、この「Ｇｕｉｄｅ（道案内）」のテンプレートに引数として与えられた実行情報が表示される。すなわち、領域５０２ｄは、引数入力領域５０４ｂとして機能する。たとえば、実行情報は、中継地点の位置情報であり、ロボット１２の開発者等がキーボードなどの入力装置２８を用いて中継地点の座標を直接手入力する方法や、予め設定しておいた地名をマウスなどの入力装置２８でいわゆるプルダウンメニュー方式で選択する方法、入力画面５００とは別ウィンドウで地図画面（図示せず）を表示して、その地図上で任意の場所を選択する方法等が考えられる。図８に示す例では、中継地点が「オリエンタル・ダイナー」であることが示される。
【００６６】
領域５０２ｅには、この「Ｇｕｉｄｅ（道案内）」のテンプレートに引数として与えられた実行情報が表示される。すなわち、領域５０２ｅは、引数入力領域５０４ｃとして機能する。たとえば、実行情報は、ロボットの発話内容に対応するテキストデータであり、ロボット１２の開発者等がキーボードなどの入力装置２８を用いて直接手入力する方法等が考えられる。図８に示す例では、ロボット１２は、「そっちの道の、突き当たりにある、○○（中継地点名）の」と発話することが示される。
【００６７】
領域５０２ｆには、この「Ｇｕｉｄｅ（道案内）」のテンプレートに引数として与えられた実行情報が表示される。すなわち、領域５０２ｆは、引数入力領域５０４ｄとして機能する。たとえば、実行情報は、案内地点の位置情報であり、ロボット１２の開発者等がキーボードなどの入力装置２８を用いて案内地点の座標を直接手入力する方法や、予め設定しておいた地名をマウスなどの入力装置２８でいわゆるプルダウンメニュー方式で選択する方法、入力画面５００とは別ウィンドウで地図画面（図示せず）を表示して、その地図上で任意の場所を選択する方法等が考えられる。図８に示す例では、案内地点が、「マイルズ」であることが示される。
【００６８】
領域５０２ｇには、この「Ｇｕｉｄｅ（道案内）」のテンプレートに引数として与えられた実行情報が表示される。すなわち、領域５０２ｇは、引数入力領域５０４ｅとして機能する。たとえば、実行情報は、ロボットの発話内容に対応するテキストデータであり、ロボット１２の開発者等がキーボードなどの入力装置２８を用いて直接手入力する方法等が考えられる。図８に示す例では、ロボット１２は、「あっちの方にある、出口から、出たとこにあるよ」と発話することが示される。
【００６９】
領域５０２ｈには、ロボット１２の発話内容が表示される。具体的には、領域５０２ｃ、領域５０２ｅ、ならびに領域５０２ｇに表示されているロボット１２の発話内容をまとめた文章が表示される。
【００７０】
このような入力画面４００，５００では、ロボット１２の開発者等は、引数入力領域４０４，５０４に実行情報を入力した後、マウスなどの入力装置２８で“了解”ボタン４０６，５０６を選択することによって、そのテンプレートに基づいた新規の行動モジュールを作成することができる。また、ロボット１２の開発者等は、“キャンセル”ボタン４０８，５０８を選択することによって、入力画面４００，５００を閉じることができる。さらに、ロボット１２の開発者等は、“クリア”ボタン４１０，５１０を選択することによって、引数入力領域に入力した実行情報を初期化することができる。
【００７１】
また、入力画面４００，５００は、リスト画面３０２に表示されているビヘイビアオブジェクトをマウスなどの入力装置２８で選択し、または視覚化画面３０２に表示されているビヘイビアアイコンをマウスなどの入力装置２８でたとえばダブルクリック等で選択することによっても表示される。この場合には、ロボット１２の開発者等は、既に引数入力領域４０４，５０４に入力されている実行情報を再入力することによって、既存の行動モジュールを更新することができる。
【００７２】
具体的には、開発支援装置１０のＣＰＵ２０は、図９に示すフロー図に従って開発支援処理を実行する。                                             
【００７３】
処理が開始されると、ＣＰＵ２０は、まず、ステップＳ１で、メモリ２４から画面データを読み出し、たとえば図６に示すようなコンポーザ画面３００を表示装置２６に表示する。
【００７４】
次に、ステップＳ３では、停止命令があるか否かを判断する。たとえば、ロボット１２の開発者等によって、コンポーザ画面３００の図示しない終了メニューが選択された場合には“ＹＥＳ”と判断し、続くステップＳ５で終了処理を実行して、開発支援処理を終了する。一方、ステップＳ３でＮＯであれば、つまり停止命令が無ければ、ステップＳ７で、後述する行動モジュールの作成・更新処理（図１０参照）を実行して、ステップＳ９に進む。
【００７５】
ステップＳ９では、行動モジュールの状態遷移が設定されたか否かを判断する。具体的には、コンポーザ画面３００の視覚化画面３０２において、行動モジュールの状態遷移が設定された後、コンポーザ画面３００の図示しない決定メニューが選択されたか否かを判断する。行動モジュールの状態遷移が設定された場合には“ＹＥＳ”と判断し、続くステップＳ５で、行動モジュールの状態遷移に関する情報（遷移情報）をロボット１２に送信して、ステップＳ３に戻る。なお、この遷移情報には、テンプレートに引数として入力された実行情報も含まれており、後で詳細に説明するように、開発支援装置１０からの遷移情報を受信したロボット１２は、指定された行動モジュールに対応するテンプレートのデータをメモリ１０４から読み出し、そのテンプレートデータに遷移情報から参照した引数としての実行情報を与えることによって、行動モジュールに規定される行動を行う。
【００７６】
一方、ステップＳ９でＮＯであれば、つまり行動モジュールの状態遷移が設定されないのであれば、そのままステップＳ３に戻る。
【００７７】
図１０は、図９に示したステップＳ７の行動モジュールの作成・更新処理のフロー図である。図１０に示すように、開発支援装置１０のＣＰＵ２０は、行動モジュールの作成・更新処理を開始すると、ステップＳ３１で、新規の行動モジュールを作成するか否かを判断する。たとえば、ロボット１２の開発者等によって、リスト画面３０４に表示された“追加”ボタンがマウスなどの入力装置２８で選択されたとき等は、ステップＳ３１で“ＹＥＳ”と判断し、次のステップＳ３３で、その“追加”ボタンに対応するテンプレートのデータをテンプレートＤＢ３０から読み出す。
【００７８】
続いて、ステップＳ３５では、ステップＳ３３でテンプレートＤＢ３０から読み出したテンプレートを視覚化して、図７に示すような入力画面４００（または、図８に示すような入力画面５００）を、コンポーザ画面３００とは別ウィンドウで表示装置２６に表示する。
【００７９】
ステップＳ３７では、行動モジュールの作成処理を実行する。具体的には、テンプレートＤＢ３０から読み出したテンプレートのデータに、この入力画面４００の引数入力領域４０４に入力した実行情報を取り込むことによって、新規の行動モジュールを作成する。ここでは、ロボット１２の開発者等は、入力画面４００の引数領域４０４に実行情報を入力し、その後、入力画面４００の“了解”ボタン４０６を選択する。
【００８０】
次に、ステップＳ３９では、作成した新規の行動モジュールを行動モジュールＤＢ３２に保存する。すると、この作成した行動モジュールに対応するビヘイビアの名称（ビヘイビアオブジェクト）がリスト画面３０４に新しく追加される。
【００８１】
ステップＳ３９を終了すると、ステップＳ３１へ戻って、繰り返し、新規の行動モジュールを作成するか否かの判断を行う。そして、ステップＳ３１で“ＮＯ”であれば、つまり新規の行動モジュールを作成しないのであれば、そのままステップＳ４１に進む。
【００８２】
ステップＳ４１では、既存の行動モジュールを更新するか否かを判断する。たとえば、ロボット１２の開発者等によって、リスト画面３０４に表示されたビヘイビアオブジェクトが選択されたとき等は、ステップＳ４１で“ＹＥＳ”と判断し、次のステップＳ４３で、そのビヘイビアオブジェクトに対応する行動モジュールのデータを行動モジュールＤＢ３２から読み出す。
【００８３】
続いて、ステップＳ４５では、図７に示すような入力画面４００（または、図８に示すような入力画面５００）を、コンポーザ画面３００とは別ウィンドウで表示装置２６に表示する。
【００８４】
ステップＳ４７では、既存の行動モジュールの更新処理を実行する。ここでは、たとえば、ロボット１２の開発者等が、入力画面４００の引数領域４０４に既に入力されている実行情報を修正する。その後、入力画面４００の“了解”ボタン４０６を選択することによって、引数領域４０４に再入力された引数としての実行情報に基づいて、行動モジュールが更新される。
【００８５】
次に、ステップＳ４９では、更新した行動モジュールを行動モジュールＤＢ３２に保存する。ここでは、更新した行動モジュールが、既存の行動モジュールと置き換えて行動モジュールＤＢ３２に記憶される。ステップＳ４９を終了すると、ステップＳ３１へ戻って、繰り返し、新規の行動モジュールを作成するか否かの判断を行う。
【００８６】
また、ステップＳ４１で“ＮＯ”であれば、つまり既存の行動モジュールを更新しないのであれば、そのままステップＳ５１に進み、ステップＳ５１で行動モジュールの作成・更新処理を終了するか否かの判断を行う。ステップＳ５１で“ＹＥＳ”であれば、行動モジュールの作成・更新処理を終了して、ステップＳ９（図９参照）に進む。
【００８７】
図１１は、ロボット１２のＣＰＵ１００の全体処理を示すフロー図である。図１１に示すように、ロボット１２のＣＰＵ１００は、全体処理を実行すると、ステップＳ７１で、最初に行う所定のビヘイビアを実行する。つまり、メモリ１０４から最初に行う所定のビヘイビアに対応する行動モジュールを読み出して、その行動モジュールに規定される行動を行う。なお、最初に実行するビヘイビアには、たとえば「ＥＸＰＬＯＲＥ（周囲環境を巡回して調査）」のように周囲環境を調査するもの等が設定され得る。
【００８８】
続いて、ステップＳ７３で、停止命令があるか否かを判断する。ここでは、たとえば、開発中であれば開発支援装置１０から終了指示があったか、あるいは、ロボット１２を停止させるための終了ボタンが押されたかどうか等を判断する。ステップＳ７３で“ＹＥＳ”であれば、続くステップＳ７５で終了処理を実行して、ロボット１２の動作処理を終了する。この終了処理では、ロボット１２の体の各部位をそれぞれのホームポジションに戻すようにしてもよい。
【００８９】
一方、ステップＳ７３で“ＮＯ”であれば、つまり停止命令がなければ、ステップＳ７７で、開発支援装置１０から行動モジュールの状態遷移についての遷移情報がネットワーク２００を介して送信されてきたか否かを判断する。ステップＳ７７で“ＹＥＳ”であれば、続くステップＳ７９で遷移情報を受信してメモリ１０４に書き込む。
【００９０】
続いて、ステップＳ８１で、遷移情報において指定されている最初のビヘイビアを選択し、ステップＳ８３で、そのビヘイビアがテンプレートに属するものであるか否かを判断する。具体的には、そのビヘイビアに対応する行動モジュールが、入力画面４００，５００の引数入力領域４０４，５０４に入力した実行情報をテンプレートデータに取り込むことによって作成された行動モジュールであるか否かを判断する。
【００９１】
ステップＳ８３で“ＹＥＳ”であれば、つまりビヘイビアがテンプレートに属するものであれば、ステップＳ８５で、テンプレートに属するビヘイビアの実行処理（図１２―１４参照）を開始して、ステップＳ８９に進む。
【００９２】
一方、ステップＳ８３で“ＮＯ”であれば、つまりビヘイビアがテンプレートに属するものでなければ、ステップＳ８７で、テンプレートに属さないビヘイビアの実行処理を開始する。つまり、そのビヘイビアに対応する行動モジュールをメモリ１０４から読み出して、その行動モジュールに規定される行動を行い、ステップＳ８９に進む。
【００９３】
続くステップＳ８９では、遷移情報によって指定されている全てのビヘイビアの実行が完了したか否かを判断する。ステップＳ８９で“ＹＥＳ”であれば、つまり遷移情報によって指定されている全てのビヘイビアの実行が完了していれば、ステップＳ７３へ戻って、処理が繰り返される。
【００９４】
一方、ステップＳ８９で“ＮＯ”であれば、つまり、まだ全てのビヘイビアの実行が完了していなければ、ステップＳ９１で、遷移情報によって指定されている次のビヘイビアを選択する。ステップＳ９１の処理を終了すると、ステップＳ８３に戻って、繰り返しそのビヘイビアがテンプレートに属するものであるか否かを判断する。
【００９５】
図１２―１４は、図１１に示したステップＳ８５のテンプレートに基づいたビヘイビアの実行処理のフロー図である。ロボット１２のＣＰＵ１００は、テンプレートに基づいたビヘイビアの実行処理を開始すると、ビヘイビアに対応するテンプレートのデータをメモリ１０４から読み出し、そのテンプレートデータに遷移情報から参照した引数としての実行情報を与えることによって、行動モジュールに規定される行動を行う。
【００９６】
図１２には、ビヘイビアが「Ｔａｌｋ（挨拶）」のテンプレートに属する場合のビヘイビアの実行処理の動作の一例が示される。
【００９７】
ステップＳ１１１では、ロボット１２のＣＰＵ１００は、眼カメラ９０からの映像信号をセンサ入力／出力ボード１０８に取り込み、映像信号処理することによって、対話相手の顔の位置の座標（ｘ，ｙ，ｚ）を算出する。
【００９８】
続くステップＳ１１３では、算出された座標のデータをモータ制御ボード１０６に与えて、ロボット１２の身体方向を対話相手の方向（ｘ，ｙ）に向けるとともに、ロボット１２の頭部８２の顔や眼球部８８を人の顔の位置（ｘ，ｙ，ｚ）に向ける。
【００９９】
次に、ステップＳ１１５では、遷移情報からこのテンプレートに引数ａｒｇ１として与えられる実行情報を参照し、その実行情報を音声入力／出力ボード１１０に送信して、音声または声がスピーカ８４から出力されるように制御する。なお、引数ａｒｇ１として与えられる実行情報は、たとえば、図７に示す「Ｔａｌｋ（挨拶）」の入力画面４００の引数入力領域４０４にテキスト（文字）で入力されたテキストデータであり、ロボット１２は、そのテキストデータの内容どおり発話する。
【０１００】
ステップＳ１１７では、ステップＳ１１５の発話が終了するまで、腕を振るなどの身体動作（ジャスチャ）を並行的に実行する。ステップＳ１１５の処理を終了すると、テンプレートに基づいたビヘイビアの実行処理を終了して、ステップＳ８９（図１１参照）に進む。
【０１０１】
図１３には、ビヘイビアが「Ｇｕｉｄｅ（道案内）」のテンプレートに属する場合のビヘイビアの実行処理の動作の一例が示される。
【０１０２】
図１３に示すように、ステップＳ１２１では、遷移情報からこのテンプレートに引数ａｒｇ１として与えられる実行情報を参照し、その実行情報を音声入力／出力ボード１１０に送信して、音声または声がスピーカ８４から出力されるように制御する。なお、引数ａｒｇ１として与えられる実行情報は、たとえば、図８に示す「Ｇｕｉｄｅ（道案内）」の入力画面５００の引数入力領域５０４ａにテキスト（文字）で入力されたテキストデータであり、ロボット１２は、そのテキストデータの内容どおり発話して、今から案内する案内地点の地名を提示する。
【０１０３】
次に、ステップＳ１２３で、遷移情報からこのテンプレートに引数ａｒｇ２として与えられる実行情報を参照し、その実行情報から中継地点の座標（ｘ，ｙ）を算出する。なお、引数ａｒｇ２として与えられる実行情報は、たとえば、図８に示す「Ｇｕｉｄｅ（道案内）」の入力画面５００の引数入力領域５０４ｂに入力された位置情報である。そして、ステップＳ１２５で、中継地点の座標（ｘ，ｙ）をモータ制御ボード１０６に与えて、指差し動作などで中継地点を指し示す。
【０１０４】
続くステップＳ１２７では、遷移情報からこのテンプレートに引数ａｒｇ３として与えられる実行情報を参照し、その実行情報を音声入力／出力ボード１１０に送信して、音声または声がスピーカ８４から出力されるように制御する。なお、引数ａｒｇ３として与えられる実行情報は、たとえば、図８に示す「Ｇｕｉｄｅ（道案内）」の入力画面５００の引数入力領域５０４ｃにテキスト（文字）で入力されたテキストデータであり、ロボット１２は、そのテキストデータの内容どおり発話して、中継地点までの経路を説明する。
【０１０５】
次に、ステップＳ１２９で、遷移情報からこのテンプレートに引数ａｒｇ４として与えられる実行情報を参照し、その実行情報から案内地点の座標（ｘ，ｙ）を算出する。なお、引数ａｒｇ４として与えられる実行情報は、たとえば、図８に示す「Ｇｕｉｄｅ（道案内）」の入力画面５００の引数入力領域５０４ｄに入力された位置情報である。そして、ステップＳ１３１で、案内地点の座標（ｘ，ｙ）をモータ制御ボード１０６に与えて、指差し動作などで案内地点を指し示す。
【０１０６】
続くステップＳ１３３では、遷移情報からこのテンプレートに引数ａｒｇ５として与えられる実行情報を参照し、その実行情報を音声入力／出力ボード１１０に与えて、その実行情報に従った音声または声がスピーカ８４から出力されるように制御する。なお、引数ａｒｇ５として与えられる実行情報は、たとえば、図８に示す「Ｇｕｉｄｅ（道案内）」の入力画面５００の引数入力領域５０４ｅにテキスト（文字）で入力されたテキストデータであり、ロボット１２は、そのテキストデータの内容どおり発話して、中継地点から案内地点までの経路を説明する。
【０１０７】
ステップＳ１３３の処理を終了すると、テンプレートに基づいたビヘイビアの実行処理を終了して、ステップＳ８９（図１１参照）に進む。
【０１０８】
図１４には、ビヘイビアが「Ｎａｖｉ（誘導）」のテンプレートに属する場合のビヘイビアの実行処理の動作の一例が示される。
【０１０９】
図１４に示すように、ステップＳ１４１では、遷移情報からこのテンプレートに引数ａｒｇ１として与えられる実行情報を参照し、その実行情報を音声入力／出力ボード１１０に与えて、その実行情報に従った音声または声がスピーカ８４から出力されるように制御する。なお、引数ａｒｇ１として与えられる実行情報は、たとえば、目的地の名称が含まれたテキストデータであり、ロボット１２は、そのテキストデータの内容どおり発話して、目的地を提示する。
【０１１０】
次に、ステップＳ１４３では、遷移情報からこのテンプレートに引数ａｒｇ２として与えられる実行情報を参照し、その実行情報から目的地の座標（ｘ，ｙ）を算出する。そして、ステップＳ１４５で、目的地の座標（ｘ，ｙ）をモータ制御ボード１０６に与えて、目的地まで人間を連れて移動する（誘導する）。
【０１１１】
ステップＳ１４５を終了すると、すなわち、目的地に到着すると、ステップＳ１４７で、たとえば「つきましたよ」と発話し、テンプレートに基づいたビヘイビアの実行処理を終了して、ステップＳ８９（図１１参照）に進む。
【０１１２】
このように、この実施例では、行動モジュールがビヘイビアの種類ごとにテンプレート化されてテンプレートＤＢ３０に格納されており、テンプレートＤＢ３０から所望のテンプレートのデータを読み出して、このテンプレートを視覚化した入力画面４００，５００を表示することができる。そして、この入力画面４００，５００の引数入力領域４０４，５０４に入力した実行情報をテンプレートのデータに取り込むことによって、新規の行動モジュールを作成することができる。したがって、この実施例によれば、簡単に新規のビヘイビアを作成することができる。
【０１１３】
また、この実施例では、テンプレートと実行情報とに基づいて作成された行動モジュールが、ロボット１２のビヘイビアに対応付けて行動モジュールＤＢ３２に記憶されており、この行動モジュールＤＢ３２から所望のビヘイビアを読み出して、入力画面４００，５００を表示することができる。そして、この入力画面４００，５００の引数入力領域４０４，５０４に既に入力されている実行情報を再入力することによって、引数領域４０４，５０４に再入力された実行情報に基づいて、行動モジュールを更新することができる。したがって、この実施例によれば、たとえば実行情報を部分的に再入力するだけで、簡単に類似のビヘイビアを作成することができる。
【符号の説明】
【０１１４】
１０  …開発支援装置
１２  …コミュニケーションロボット
２０  …ＣＰＵ
２２  …バス
２４  …メモリ
２６  …表示装置
２８  …入力装置
３０  …テンプレートＤＢ
３２  …行動モジュールＤＢ
６０  …赤外線距離センサ
６６  …全方位カメラ
７８  …接触センサ
８４  …スピーカ
８６  …マイク
９０  …眼カメラ
１００  …ＣＰＵ
１０２  …バス
１０４  …メモリ
１０６  …モータ制御ボード
１０８  …センサ入力／出力ボード
１１０  …音声入力／出力ボード
２００  …ネットワーク
３００  …コンポーザ画面
４００、５００  …入力画面
４０４、５０４  …引数入力領域
【図１】
2010253565.tif 000003
【図２】
2010253565.tif 000004
【図３】
2010253565.tif 000005
【図４】
2010253565.tif 000006
【図５】
2010253565.tif 000007
【図６】
2010253565.tif 000008
【図７】
2010253565.tif 000009
【図８】
2010253565.tif 000010
【図９】
2010253565.tif 000011
【図１０】
2010253565.tif 000012
【図１１】
2010253565.tif 000013
【図１２】
2010253565.tif 000014
【図１３】
2010253565.tif 000015
【図１４】
2010253565.tif 000016