JP2006263858A - コミュニケーションロボット - Google Patents

コミュニケーションロボット Download PDF

Info

Publication number
JP2006263858A
JP2006263858A JP2005085302A JP2005085302A JP2006263858A JP 2006263858 A JP2006263858 A JP 2006263858A JP 2005085302 A JP2005085302 A JP 2005085302A JP 2005085302 A JP2005085302 A JP 2005085302A JP 2006263858 A JP2006263858 A JP 2006263858A
Authority
JP
Japan
Prior art keywords
robot
communication
signal
script
script file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005085302A
Other languages
English (en)
Inventor
Kotaro Hayashi
宏太郎 林
Takayuki Kanda
崇行 神田
Keiko Miyashita
敬宏 宮下
Hiroshi Ishiguro
浩 石黒
Hideaki Terauchi
秀明 寺内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2005085302A priority Critical patent/JP2006263858A/ja
Publication of JP2006263858A publication Critical patent/JP2006263858A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【構成】 コミュニケーションロボット12はCPUを含み、CPUはコンピュータ20から指示されたスクリプトファイルを実行する。スクリプトファイルでは、他方のロボット12から送信される実行タイミングを受信したことに応じて、少なくとも発話を含むコミュニケーション行動を実行する。また、一方のロボット12は、コミュニケーション行動を実行開始することまたは実行終了することに応じて、他のロボット12に実行タイミングを送信する。したがって、2台のロボット12は連鎖的にコミュニケーション行動を実行する。
【効果】 ロボット同士の協調した会話が可能である。
【選択図】 図1

Description

この発明はコミュニケーションロボットに関し、特にたとえば、少なくとも発話を含むコミュニケーション行動を行う、コミュニケーションロボットに関する。
背景技術の一例が非特許文献1に開示される。この非特許文献1によれば、対話サーバを通じて複数のロボット間で同期して状況依存モジュールを実行し、音声やジェスチャによりロボット同士が通信(対話)している(連鎖的に会話している)ことを表現している。
「人-ロボットの対話におけるロボット同士の対話観察の効果」電子情報通信学会論文誌 D-I, Vol.J85-D-I,No.7, pp. 691-700, Jul. 2002.
しかし、この背景技術では、各ロボットにおける状況依存モジュールのタイムスケジュールが固定的であり、対話サーバによってすべてのロボットの同期を取るようにしてあるため、たとえば1のロボットの状況依存モジュールやタイムスケジュールを変化させると、他のすべてのロボットについても状況依存モジュールやタイムスケジュール(タイミング)を変化させる必要がある。具体的には、1のロボットが「おはよう」と発話するのを「おはようございます」と発話するように変化させた場合には、発話時間が長くなってしまい、これに伴って、すべてのロボットにおける状況依存モジュールのタイムスケジュールを変化させる必要がある。つまり、非常に手間がかかり、開発労力や修正コストが膨大になってしまう。
それゆえに、この発明の主たる目的は、新規な、コミュニケーションロボットを提供することである。
この発明の他の目的は、連鎖的な会話を低い開発労力で実現できる、コミュニケーションロボットを提供することである。
請求項1の発明は、少なくとも発話を含むコミュニケーション行動を実行するコミュニケーションロボットであって、他のコミュニケーションロボットから送信された実行タイミングを受信する実行タイミング受信手段、実行タイミング受信手段によって実行タイミングを受信したことに応じて、コミュニケーション行動を実行するコミュニケーション実行手段、およびコミュニケーション実行手段によってコミュニケーション行動を実行開始することまたは実行終了したことに応じて、他のコミュニケーションロボットに実行タイミングを送信する実行タイミング送信手段を備える、コミュニケーションロボットである。
請求項1の発明では、コミュニケーションロボットは、たとえば、他のコミュニケーションロボットとの間で、少なくとも発話を含むコミュニケーション行動を実行する。実行タイミング受信手段は、他のコミュニケーションロボットから送信された実行タイミングを受信する。コミュニケーション行動実行手段は、実行タイミング受信手段によって実行タイミングを受信したことに応じて、コミュニケーション行動を実行する。実行タイミング送信手段は、コミュニケーション行動実行手段によってコミュニケーション行動を実行開始すること、または、実行終了したことに応じて、他のコミュニケーションロボットに実行タイミングを送信する。したがって、他のコミュニケーションロボットでは、実行タイミングを受信したことに応じて、コミュニケーション行動を実行する。
請求項1の発明によれば、他のコミュニケーションロボットから実行タイミングを受信したことに応じて、コミュニケーション行動を実行するので、他のコミュニケーションロボットとの間で連鎖的にコミュニケーション行動を実行することができる。したがって、たとえば、コミュニケーションロボット同士で協調した会話が可能である。また、実行タイミングを受信するだけなので、他のコミュニケーションロボットにおけるコミュニケーション行動の内容等は関係がない。このため、コミュニケーション行動を編集(変更、追加、削除)する場合に、他のコミュニケーションロボットのコミュニケーション行動の実行タイミングを考慮する必要がない。つまり、開発労力や修正コストを低減することができる。
請求項2の発明は請求項1に従属し、コミュニケーション行動は身体動作をさらに含む。
請求項2の発明では、コミュニケーションは、発話のみならず、身振り手振りのような身体動作を実行する場合もある。
請求項2の発明によれば、発話のみならず、身体動作も伴うため、人間同士のようなコミュニケーションをコミュニケーションロボット同士でも実現可能である。
請求項3の発明は請求項1または2に従属し、外部要因を検出する外部要因検出手段をさらに備え、コミュニケーション実行手段は、外部要因検出手段によって検出された外部要因に応じて異なる種類のコミュニケーション行動を実行する。
請求項3の発明では、外部要因検出手段は、外部要因を検出する。コミュニケーション実行手段は、外部要因に応じて異なる種類のコミュニケーション行動を実行する。
請求項3の発明によれば、外部要因に応じたコミュニケーション行動を実行するので、状況に応じたコミュニケーションが可能である。
請求項4の発明は請求項3に従属し、外部要因検出手段は、音および映像の少なくとも一方に基づいて外部要因を検出する。
請求項4の発明では、外部要因は、音および映像の少なくとも一方に基づいて検出される。したがって、たとえば、コミュニケーションロボットが存在する環境における音が大きかったり、映像に大きな動きがあったりすれば、周囲がざわついていると判断して、そのような周囲の状況に応じたコミュニケーション行動が実行される。
請求項4の発明によれば、周囲の状況に応じたコミュニケーション行動が実行されるので、人間同士がコミュニケーションしているようにコミュニケーションすることができる。
この発明によれば、他のロボットから実行タイミングを受信したことに応じてコミュニケーション行動を実行するので、連鎖的なコミュニケーションが可能である。また、実行タイミングをやり取りするので、1のロボットについての行動プログラムを編集する場合であっても、他のコミュニケーションロボットの実行タイミングを考慮したり変更したりする必要がない。このため、開発労力および修正コストを低減することができる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この実施例のコミュニケーションロボットシステム(以下、単に「システム」という。)10は、2台のコミュニケーションロボット(以下、単に「ロボット」という。)12を含む。このロボット12は、たとえば他のロボット12または人間(図示せず)のようなコミュニケーションの対象とコミュニケーションすることを目的とした相互作用指向のものであり、身体動作(身振り、手振り)および発話(音声)の少なくとも一方を用いたコミュニケーションの行動(以下、「コミュニケーション行動」ということがある。)を行う機能を備えている。
なお、この実施例では、簡単のため、図1に示すように、システム10は2台のロボット12を備えるようにしてあるが、ロボット12は3台以上であってもよい。
ロボット12は、人間のような身体を有し、その身体を用いてコミュニケーションのために必要な複雑な身体動作を生成する。具体的には、図2を参照して、ロボット12は台車32を含み、この台車32の下面には、このロボット12を自律移動させる車輪34が設けられる。この車輪34は、車輪モータ(ロボット12の内部構成を示す図3において参照番号「36」で示す。)によって駆動され、台車32すなわちロボット12を前後左右任意の方向に動かすことができる。
なお、図2では示さないが、この台車32の前面には、衝突センサ(図3において参照番号「38」で示す。)が取り付けられ、この衝突センサ38は、台車32への人や他の障害物の接触を検知する。そして、ロボット12の移動中に障害物との接触を検知すると、直ちに車輪34の駆動を停止してロボット12の移動を急停止させる。
また、ロボット12の背の高さは、この実施例では、人、特に子供に威圧感を与えることがないように、100cm程度とされている。ただし、この背の高さは任意に変更可能である。
台車32の上には、多角形柱のセンサ取付パネル40が設けられ、このセンサ取付パネル40の各面には、超音波距離センサ42が取り付けられる。この超音波距離センサ42は、取付パネル40すなわちロボット12の周囲の主として人との間の距離を計測するものである。
台車32の上には、さらに、ロボット12の胴体が、その下部が上述の取付パネル40に囲まれて、直立するように取り付けられる。この胴体は下部胴体44と上部胴体46とから構成され、これら下部胴体44および上部胴体46は、連結部48によって連結される。連結部48には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体46の高さすなわちロボット12の高さを変化させることができる。昇降機構は、後述のように、腰モータ(図3において参照番号「50」で示す。)によって駆動される。上で述べたロボット12の身長100cmは、上部胴体46をそれの最下位置にしたときの値である。したがって、ロボット12の身長は100cm以上にすることができる。
上部胴体46のほぼ中央には、1つの全方位カメラ52と、1つのマイク16とが設けられる。全方位カメラ52は、ロボット12の周囲を撮影するもので、後述の眼カメラ54と区別される。マイク16は、周囲の音、とりわけ人の声を取り込む。
上部胴体46の両肩には、それぞれ、肩関節56Rおよび56Lによって、上腕58Rおよび58Lが取り付けられる。肩関節56Rおよび56Lは、それぞれ3軸の自由度を有する。すなわち、右肩関節56Rは、X軸,Y軸およびZ軸の各軸廻りにおいて上腕58Rの角度を制御できる。Y軸は、上腕58Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に、それぞれ異なる方向から直交する軸である。左肩関節56Lは、A軸,B軸およびC軸の各軸廻りにおいて上腕58Lの角度を制御できる。B軸は、上腕58Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に、それぞれ異なる方向から直交する軸である。
上腕58Rおよび58Lのそれぞれの先端には、肘関節60Rおよび60Lを介して、前腕62Rおよび62Lが取り付けられる。肘関節60Rおよび60Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕62Rおよび62Lの角度を制御できる。
なお、上腕58Rおよび58Lならびに前腕62Rおよび62L(いずれも図2)の変位を制御するX,Y,Z,W軸およびA,B,C,D軸では、「0度」がホームポジションであり、このホームポジションでは、上腕58Rおよび58Lならびに前腕62Rおよび62Lは下方向に向けられる。
また、図2では示さないが、上部胴体46の肩関節56Rおよび56Lを含む肩の部分や上述の上腕58Rおよび58Lならびに前腕62Rおよび62Lを含む腕の部分には、それぞれ、タッチセンサ(図3において参照番号64で包括的に示す。)が設けられていて、これらのタッチセンサ64は、人がロボット12のこれらの部位に接触したかどうかを検知する。
前腕62Rおよび62Lのそれぞれの先端には、手に相当する球体66Rおよび66Lがそれぞれ固定的に取り付けられる。ただし、指の機能(握る、掴む、摘むなど)が必要な場合には、球体66Rおよび66Lに代えて、人の手の形をした「手」を用いることも可能である。
上部胴体46の中央上方には、首関節68を介して、頭部70が取り付けられる。この首関節68は、3軸の自由度を有し、S軸,T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上に向かう軸であり、T軸およびU軸は、それぞれ、このS軸に対して異なる方向で直交する軸である。頭部70には、人の口に相当する位置に、スピーカ72が設けられる。スピーカ72は、ロボット12が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられる。ただし、スピーカ72は、ロボット12の他の部位たとえば胴体に設けられてもよい。
また、頭部70には、目に相当する位置に眼球部74Rおよび74Lが設けられる。眼球部74Rおよび74Lは、それぞれ眼カメラ54Rおよび54Lを含む。なお、右の眼球部74Rおよび左の眼球部74Lをまとめて眼球部74といい、右の眼カメラ54Rおよび左の眼カメラ54Lをまとめて眼カメラ54ということもある。眼カメラ54は、ロボット12に接近した人の顔や他の部分ないし物体等を撮影してその映像信号を取り込む。
なお、上述の全方位カメラ52および眼カメラ54のいずれも、たとえばCCDやCMOSのような固体撮像素子を用いるカメラであってよい。
たとえば、眼カメラ54は眼球部74内に固定され、眼球部74は眼球支持部(図示せず)を介して頭部70内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部70に対して設定される軸であり、α軸は頭部70の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部70の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部70がホームポジションにあるとき、α軸はS軸に平行し、β軸はU軸に平行するように設定されている。このような頭部70において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部74ないし眼カメラ54の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
なお、眼カメラ54の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図2に示すように、眼カメラ54のカメラ軸は頭部70の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
図3には、ロボット12の内部構成を示すブロック図が示される。この図3に示すように、ロボット12は、全体の制御のためにマイクロコンピュータまたはCPU76を含み、このCPU76には、バス78を通して、メモリ80,モータ制御ボード82,センサ入力/出力ボード84および音声入力/出力ボード86が接続される。
メモリ80は、図示しないが、ROMやHDD、RAM等を含み、ROMまたはHDDにはこのロボット12の制御プログラムおよびデータ等が予め格納されている。CPU76は、このプログラムに従って処理を実行する。具体的には、ロボット12の身体動作を制御するための複数のプログラム(行動モジュールと呼ばれる。)が記憶される。たとえば、行動モジュールが示す身体動作としては、「握手」、「抱っこ」、「指差し」…などがある。行動モジュールが示す身体動作が「握手」である場合には、当該行動モジュールを実行すると、ロボット12は、たとえば、右手を前に差し出す。また、行動モジュールが示す身体動作が「抱っこ」である場合には、当該行動モジュールを実行すると、ロボット12は、たとえば、両手を前に差し出す。さらに、行動モジュールが示す身体動作が「指差し」である場合には、当該行動モジュールを実行すると、ロボット12は、たとえば、右手(右腕)または左手(左腕)で所望の方向を指示する。また、RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用され得る。
モータ制御ボード82は、たとえばDSP(Digital Signal Processor)で構成され、右腕、左腕、頭および眼等の身体部位を駆動するためのモータを制御する。すなわち、モータ制御ボード82は、CPU76からの制御データを受け、右肩関節56RのX,YおよびZ軸のそれぞれの角度を制御する3つのモータと右肘関節60RのW軸の角度を制御する1つのモータを含む計4つのモータ(図3ではまとめて、「右腕モータ」として示す。)88の回転角度を調節する。また、モータ制御ボード82は、左肩関節56LのA,BおよびC軸のそれぞれの角度を制御する3つのモータと左肘関節60LのD軸の角度を制御する1つのモータとを含む計4つのモータ(図3ではまとめて、「左腕モータ」として示す。)90の回転角度を調節する。モータ制御ボード82は、また、首関節68のS,TおよびU軸のそれぞれの角度を制御する3つのモータ(図3ではまとめて、「頭部モータ」として示す。)92の回転角度を調節する。モータ制御ボード82は、また、腰モータ50、および車輪34を駆動する2つのモータ(図3ではまとめて、「車輪モータ」として示す。)36を制御する。さらに、モータ制御ボード82は、右眼球部74Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図3ではまとめて、「右眼球モータ」として示す。)94の回転角度を調節し、また、左眼球部74Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図3ではまとめて、「左眼球モータ」として示す。)96の回転角度を調節する。
なお、この実施例の上述のモータは、車輪モータ36を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ36と同様に、直流モータであってよい。
センサ入力/出力ボード84も、同様に、DSPで構成され、各センサやカメラからの信号を取り込んでCPU76に与える。すなわち、超音波距離センサ42の各々からの反射時間に関するデータがこのセンサ入力/出力ボード84を通して、CPU76に入力される。また、全方位カメラ52からの映像信号が、必要に応じてこのセンサ入力/出力ボード84で所定の処理が施された後、CPU76に入力される。眼カメラ54からの映像信号も、同様にして、CPU76に与えられる。また、タッチセンサ64からの信号がセンサ入力/出力ボード84を介してCPU76に与えられる。
スピーカ72には音声入力/出力ボード86を介して、CPU76から、合成音声データが与えられ、それに応じて、スピーカ72からはそのデータに従った音声または声が出力される。また、マイク24からの音声入力が、音声入力/出力ボード86を介してCPU76に取り込まれる。
また、CPU76には、バス78を通して、通信LANボード98が接続される。この通信LANボード98も、同様に、DSPで構成され、CPU76から与えられた送信データを無線通信装置100に与え、無線通信装置100から送信データを送信させる。また、通信LANボード98は無線通信装置100を介してデータを受信し、受信データをCPU76に与える。
図1に戻って、システム10はまた、コンピュータ20を含み、このコンピュータ20はイントラネットやLANのようなネットワーク14を介して2台のロボット12の各々に接続される。ネットワーク14は、有線または無線のいずれでもよい。コンピュータ20は、汎用のPCまたはワークステーション或いはサーバである。このコンピュータ20には、マイク22、カメラ24および入力装置26が接続される。
マイク22は、集音マイクであり、主として、2台のロボット12の周囲の音(音声)を検出し、検出した音声に対応する音声信号をコンピュータ20に入力する。簡単のため、図1では、1つのマイク22を示してあるが、マイク22は必要に応じて2つ以上設けるようにしてもよい。
カメラ24は、たとえばCCDやCMOSのような固体撮像素子を用いるカメラであり、主として、2台のロボット12の周囲の映像を撮影し、撮影した映像に対応する映像信号をコンピュータ20に入力する。簡単のため、図1では、1台のカメラ24を示してあるが、カメラ24は2台以上設けるようにしてもよい。
入力装置26は、キーボードやコンピュータマウスである。ただし、コンピュータマウスに代えて、タッチパネル、タッチパッド、トラックボールなどの他のポインティングデバイスを設けるようにしてもよい。また、コンピュータマウスとともに、他のポインティングデバイスを設けてもよい。入力装置26は、ユーザによって操作され、操作に応じた操作信号をコンピュータ20に入力する。
図4はこの実施例で使用するスクリプト(命令)の一覧を示す図解図である。この図4を参照して、スクリプトの一覧では、スクリプト(命令)に対応して、引数が記述されている。具体的には、発話命令(speak文)は、音声(音声データ)を再生開始する。また、再生開始と同じタイミングで指定された信号を送信する。ただし、この信号の送信は省略できる。ここで、指定された信号とは、任意の信号であり、スクリプトファイルの作成者が自由に決定できる信号である。以下、同様である。発話命令(speakwait文)は、音声を再生開始する。また、再生が終了したタイミングで指定された信号を送信する。ただし、この信号の送信は省略できる。動作命令(motion文)は、モーション(身体動作)を開始する。つまり、指定された動作ファイル(行動モジュール)を実行する。また、モーションの開始と同じタイミングで指定された信号を送信する。ただし、この信号の送信は省略できる。動作命令(motionwait文)は、モーションを開始する。また、モーションが終了したタイミングで指定された信号を送信する。ただし、この信号の送信は省略できる。
信号命令(signal文)は、指定された信号を送信する。信号待ち命令(signalwait文)は、指定された信号を受信するまで待機する。待ち命令(wait文)は、指定された時間だけ待機する。移動命令(move文)は、指定座標に移動し、指定方向に転回する。また、移動開始と同じタイミングで指定された信号を送信する。ただし、この信号の送信は省略できる。移動命令(movewait文)は、指定座標に移動し、指定方向に転回する。また、移動が終了したタイミングで指定された信号を送信する。ただし、この信号の送信は省略できる。
リアクションチェック命令(check_reaction文)は、笑いを判定する。この実施例では、コンピュータ20に、笑いの判定(たとえば、すべった、大うけ、小うけ)の送信要求を送信する。なお、この実施例では、後で説明するように、2台のロボット12で漫才を行うため、ロボット12が存在する環境における外部の要因(外部要因)ないし刺激(外部刺激)としての笑い(ざわめき)を取得(検出)すべく、笑いの判定要求を送信するようにしてある。しかし、リアクションチェック命令は、一般的に言うと、ロボット12が存在する環境における外部要因ないし外部刺激(以下、「ステータス信号」ということがある。)の送信要求を実行するためのスクリプトである。判断命令文(if文)は、笑い判定の結果(外部要因)に応じたシナリオに移行する。終了(exit文)は、シナリオの最後(終了)である。
このようなスクリプトを用いてスクリプトファイルを作成し、ロボット12同士による協調した(連鎖的な)インタラクション(コミュニケーション行動)を実現するようにしてある。スクリプトファイルに従うコミュニケーション行動の例については後述するが、ここでは、ロボット12(CPU76)のスクリプトの読込み処理について説明することにする。
具体的には、各ロボット12のCPU76は、図5〜図7に示すようなスクリプトの読込み処理を実行し、後述するように、スクリプトファイル(シナリオ)に従ったコミュニケーション行動を実行しているのである。図5を参照して、CPU76はスクリプトの読込み処理を開始すると、ステップS1で、スクリプトファイルの1行目を読み込む。続くステップS3では、speak文であるかどうかを判断する。ステップS3で“YES”であれば、つまりspeak文であれば、ステップS5で、指定された音声ファイルを再生開始し、図6に示すステップS33に進む。ここで、音声ファイルは、たとえばコミュニケーション行動としての発話の内容を示す音声データ(または音声合成データ)である。この音声データが再生され、ロボット12が発話する。以下、音声ファイルを再生する場合において、同様である。一方、ステップS3で“NO”であれば、つまりspeak文でなければ、ステップS7で、speakwait文であるかどうかを判断する。
ステップS7で“YES”であれば、つまりspeakwait文であれば、ステップS9で、指定された音声ファイルを再生開始し、ステップS11で、音声ファイルの再生を終了したかどうかを判断する。音声ファイルの再生を終了していなければ、ステップS11で“NO”となり、そのまま同じステップS11に戻る。しかし、音声ファイルの再生を終了すれば、ステップS11で“YES”となり、ステップS33に進む。
一方、ステップS7で“NO”であれば、つまりspeakwait文でなければ、ステップS13で、motion文であるかどうかを判断する。ステップS13で“YES”であれば、つまりmotion文であれば、ステップS15で、指定された動作ファイルを再生開始し、ステップS33に進む。ここで、動作ファイルは、コミュニケーション行動に含まれる身体動作を制御するためのデータで構成され、視線方向(顔の向き)や各関節角が指定される。したがって、指定された視線方向や関節角になるように、モータ88,90,92,94,96が回転制御される。これにより、ロボット12は身振り手振りを行う。以下、動作ファイルを再生する場合において、同様である。
また、ステップS13で“NO”であれば、つまりmotion文でなければ、ステップS17で、motionwait文であるかどうかを判断する。ステップS17で“YES”であれば、つまりmotionwait文であれば、ステップS19で、指定された動作ファイルを再生開始し、ステップS21で、動作ファイルの再生を終了したかどうかを判断する。動作ファイルの再生を終了していなければ、ステップS21で“NO”となり、同じステップS21に戻る。しかし、動作ファイルの再生を終了すれば、ステップS21で“YES”となり、ステップS33に進む。
一方、ステップS17で“NO”であれば、つまりmotionwait文でなければ、図6に示すステップS23で、move文であるかどうかを判断する。ステップS23で“YES”であれば、つまりmove文であれば、ステップS25で、指定された座標(x,y,θ)に移動を開始し、ステップS33に進む。ここで、座標(x,y)は、ロボット12が存在する環境において、いずれかの位置を基準(原点)とした場合の位置であり、θはロボット12の正面方向とたとえばX軸とがなす角度すなわちロボット12の向きである。以下、指定された座標に移動する場合において、同じである。
また、ステップS23で“NO”であれば、つまりmove文でなければ、ステップS27で、movewait文であるかどかを判断する。ステップS27で“YES”であれば、つまりmovewait文であれば、ステップS29で、指定された座標に移動を開始し、ステップS31で、移動を終了したかどうかを判断する。移動を終了していなければ、ステップS31に“NO”となり、同じステップS31に戻る。しかし、移動を終了すれば、ステップS31で“YES”となり、ステップS33に進む。
ステップS33では、末尾に信号送信指令があるかどうかを判断する。ステップS33で“NO”であれば、つまり末尾に信号送信指令がなければ、図7に示すステップS65に進む。しかし、ステップS33で“YES”であれば、つまり末尾に信号送信指令があれば、ステップS37で、指定された信号を送信する。
また、ステップS27で“NO”であれば、つまりmovewait文でなければ、ステップS35で、signal文であるかどうかを判断する。ステップS35で“YES”であれば、つまりsignal文であれば、ステップS37に進む。一方、ステップS35で“NO”であれば、つまりsignal文でなければ、ステップS39で、signalwait文であるかどうかを判断する。ステップS39で“YES”であれば、つまりsignalwait文であれば、ステップS41で、指定された信号を受信したかどうかを判断する。ここで,指定された信号を受信していなければ、ステップS41で“NO”となり、同じステップS41に戻る。つまり、指定された信号の受信を待機する。しかし、指定された信号を受信すれば、ステップS41で“YES”となり、ステップS65に進む。
ステップS39で“NO”であれば、つまりsignalwait文でなければ、ステップS43で、wait文であるかどうかを判断する。ステップS43で“YES”であれば、つまりwait文であれば、ステップS45で、指定された時間だけ待機して、ステップS65に進む。一方、ステップS43で“NO”であれば、つまりwait文でなければ、図7に示すステップS47で、check_reaction文であるかどうかを判断する。
ステップS47で“YES”であれば、つまりcheck_reaction文であれば、ステップS49で、ステータス信号の送信要求(笑いの判定要求)をコンピュータ20に送信する。続くステップS51では、ステータス信号(笑いの判定結果)を受信したかどうかを判断する。ステップS51で“NO”であれば、つまりステータス信号を受信していなければ、そのままステップS51に戻る。一方、ステップS51で“YES”であれば、つまりステータス信号を受信すれば、ステップS53で、ステータスが“大爆笑(大うけ)”を示すかどうかを判断する。ステップS53で“YES”であれば、つまりステータスが“大爆笑”であれば、ステップS55で、“大爆笑”についてif文で設定されたシナリオに移行する。
しかし、ステップS53で“NO”であれば、つまりステータスが“大爆笑”でなければ、ステップS57で、“普通の笑い(小うけ)”であるかどうかを判断する。ステップS57で“YES”であれば、つまりステータスが“普通の笑い”であれば、ステップS59で、“普通の笑い”についてif文で設定されたシナリオに移行して、ステップS65に進む。一方、ステップS57で“NO”であれば、つまり“笑いなし”であれば、ステップS61で、“笑いなし”についてif文で設定されたシナリオに移行して、ステップS65に進む。
一方、ステップS47で“NO”であれば、つまりcheck_reaction文でなければ、ステップS63で、exit文であるかどうかを判断する。ステップS63で“NO”であれば、つまりexit文でなければ、ステップS65で、スクリプトファイルの次の行を読み込み、図5に示したステップS3に戻る。一方、ステップS63で“YES”であれば、つまりexit文であれば、スクリプトの読込み処理を終了する。
たとえば、図8に示すように、システム10の2台のロボット12が舞台上に配置され、全部または一部の観客の声(音または音声)を収集するように、マイク22が配置され、さらに、全部または一部の観客(顔ないし上半身)を撮影するように、カメラ24が配置される。
なお、簡単のため、図8ではコンピュータ20および入力装置26は省略するが、2台のロボット12とコンピュータ20とはネットワーク14で接続されるとともに、マイク22およびカメラ24はコンピュータ20に接続される。
たとえば、2台のロボット12(説明の便宜上、一方を「ロボットA」と呼び、他方を「ロボットB」と呼ぶことがある。)は、舞台上で漫才のようなインタラクションを行う。つまり、2台のロボット12が連鎖的にインタラクションする。ここでは、ロボットAが「ぼけ」を担当し、ロボットBが「つっこみ」を担当することにする。ユーザがコンピュータ20に接続された入力装置26を操作して、各ロボット12に、所望のスクリプトファイルを指示する。この実施例では、スクリプトファイルは、後述するように、ロボット12が実行する漫才についてのコミュニケーション行動等を順次記述したものである。したがって、「ぼけ」のスクリプトファイルおよび「つっこみ」のスクリプトファイルを、それぞれ、1つの台本(シナリオ)と言うことができる。
なお、後述するように、この実施例では、スクリプトファイルは、各ロボット12のメモリ80に予め記憶されており、コンピュータ20は、ユーザの指示に従って実行するスクリプトファイルのファイル名のような識別情報を各ロボット12に指示する。
ユーザの指示に従って、コンピュータ20が各ロボット12にスクリプトファイルを指示すると、各ロボット12は、指示されたスクリプトファイルの読込みを開始し、スクリプトファイルに記述されたスクリプトを1行目から順次実行する。つまり、漫才の処理が実行される。
図9(A)および図9(B)は、2台のロボット12が漫才する場合に、各ロボット12で実行されるスクリプトファイルの例を示す図解図である。この実施例では、図9(A)に示すスクリプトファイル812aはロボットAで実行され、図9(B)に示すスクリプトファイル812bはロボットBで実行される。スクリプトファイル812aは、シナリオA(ぼけ)についてのスクリプトファイルである。スクリプトファイル812bは、シナリオAとで一対となるシナリオB(つっこみ)についてのスクリプトファイルである。
具体的に説明すると、シナリオAでは、1行目に、信号S(開始信号)を待機するsignalwait文が記述される。2行目には、後述する音声データ814a(A01.wav)の発話命令およびその末尾に信号Aの送信命令が記述される。3行目には、特定の信号(ここでは、信号B)の待機命令が記述される。ここで、信号Aは、ロボットBのコミュニケーション行動の実行タイミングを示す信号であり、ロボットAがロボットBに送信する。ここでは、ロボットAは、音声データ814aを再生した後に、信号Aを送信するようにしてある。つまり、コミュニケーション行動の実行を終了したタイミングで、実行タイミングを送信するようにしてある。ただし、コミュニケーション行動の実行を開始したタイミングで、実行タイミングを送信する場合もある。また、信号Bは、ロボットAのコミュニケーション行動の実行タイミングを示す信号であり、ロボットBがロボットAに送信する。信号Bの送信タイミングは、信号Aの場合と同様であるため、重複した説明は省略する。
また、シナリオAの4行目には、笑いの判定要求のためのreaction_check文が記述される。このreaction_check文を読み込むと、ロボットAは笑いの判定要求をコンピュータ20に送信する。5行目〜7行目には、笑いの判定結果が「大うけ」である場合のシナリオが記述される。笑いの判定結果が「大うけ」の場合には、後述する音声データ814b(A02.wav)の発話命令が記述される。また、8行目〜10行目には、笑いの判定結果が「小うけ」である場合のシナリオが記述される。笑いの判定結果が「小うけ」の場合には、後述する音声データ814c(A03.wav)の発話命令が記述される。そして、11行目には、シナリオAすなわちスクリプトファイル812aの終了を示すexit文が記述される。
一方、図9(B)に示すように、スクリプトファイル812bでは、1行目に、信号S(開始信号)を待機するsignalwait文が記述される。2行目には、信号A(ロボットBの実行タイミングについての信号)を待機するsigunalwait文が記述される。3行目には、後述する音声データ814dを再生するspeakwait文およびその末尾に信号Bの送信指示が記述される。そして、4行目には、シナリオBすなわちスクリプトファイル812bの終了を示すexit文が記述される。
このように、ロボットAがスクリプトファイル812aを実行し、ロボットBがスクリプトファイル812bを実行すると、ロボットAが「暑は夏いねぇ〜」と発話すると、これに対して、ロボットBが「なんでやねん」と発話する。ここで、笑いを判定する。笑いが「大うけ」であれば、ロボットAは「ええお客さんやなあ」と発話する。一方、笑いが「小うけ」であれば、ロボットAは「あ、逆や」と発話する。つまり、ロボットAとロボットBとが連鎖的に会話し、また、観客の反応(外部要因)に応じたシナリオを展開するのである。
なお、この実施例では、簡単のため、連鎖的な会話の一部のみを示してあるが、スクリプトファイルをさらに長いシナリオを記述することにより、さらに長い漫才を実行できる。
また、この実施例では、簡単のため、ロボットは発話のみを実行するようにしてあるが、適宜身体動作や移動を実行させるように、動作命令(motion, motionwait)のスクリプトや移動命令(move, movewait)のスクリプトを記述するようにしてもよい。
図10は、ロボット12(ロボットA,ロボットB)に内蔵されるメモリ80のメモリマップを示す図解図である。この図10を参照して、メモリ80は、プログラム記憶領域800およびデータ記憶領域810を含む。プログラム記憶領域800には、ロボット12についての制御プログラムが記憶され、この制御プログラムはメインプログラム800aおよびスクリプト読込みプログラム800bなどによって構成される。
メインプログラム800aは、ロボット12の全体処理を実行するためのプログラムである。スクリプト読込みプログラム800は、指定されたスクリプトファイルに記述されるスクリプトを1行ずつ読み込み、スクリプトを実行するためのプログラムである。
データ記憶領域810には、スクリプトファイル記憶領域812、音声データ記憶領域814およびその他の領域816が設けられる。スクリプトファイル記憶領域812には、図9(A)および図9(B)に示したようなスクリプトファイル812a,812bなどの複数のスクリプトファイルが記憶される。上述したように、スクリプトファイル812aとスクリプトファイル812bとは一対であり、1つの漫才(ネタ)を構成する。図示は省略してあるが、スクリプトファイル記憶領域812に記憶されるスクリプトファイルは、1つのネタにつき、ぼけ用とつっこみ用とが用意され、スクリプトファイル812aとスクリプトファイル812bのように、連続(隣接)して、または、互いに関連づけて、記述されているものとする。
音声データ記憶領域814には、複数の音声データ(音声ファイル)が記憶される。ただし、この実施例では、簡単のため、スクリプトファイル812aおよびスクリプトファイル812bにおいて指定(実行)される音声データのみを示してある。具体的には、音声データ(A01.wav)814aは、「暑は夏いねぇ〜」についての音声合成データである。音声データ(A02.wav)814bは、「ええお客さんやなあ」についての音声合成データである。音声データ(A03.wav)814cは、「あ、逆や」についての音声合成データである。音声データ(B01.wav)814dは、「なんでやねん」についての音声合成データである。
その他の領域816は、たとえば、バッファ領域ないしワーク領域であり、図示は省略するが、プログラム(行動モジュール)の実行中に発生するデータを一時記憶したり、他のロボット12から送信された信号を一時記憶したりするなどに使用される。
図9(A),(B)および図10に示したようなスクリプトファイル812aおよび812bに従って、ロボットAおよびロボットBが漫才する場合の処理を図11〜図13に示すフロー図を用いて説明する。また、このとき、コンピュータ20は、図14に示す全体処理を実行する。
図11を参照して、ロボットAのCPU76は漫才の処理を開始すると、ステップS71で、スクリプト指定を受信したかどうかを判断する。つまり、読み込むスクリプトファイルが指定されたかどうかを判断する。ステップS71で“NO”であれば、つまりスクリプト指定を受信していなければ、同じステップS71に戻る。一方、ステップS71で“YES”であれば、つまりスクリプト指定を受信していれば、ステップS73で、指定されたスクリプトファイルを読み込む。ここでは、スクリプトファイル812aを読み込むが、図5〜図7に示したように、スクリプトを1行ずつ読み込み、実行する。ただし、if文が記述されている場合には、条件を満たすスクリプトのみが読み込まれる。以下、同様である。
続くステップS75では、信号Sを受信したかどうかを判断する。つまり、ここでは、図9(A)に示したように、スクリプトファイル812aの1行目を読み込み、信号Sの待機命令の処理を実行しているのである。ステップS75で“NO”であれば、つまり信号S(漫才の開始指示。以下、同じ。)を受信していなければ、同じステップS75に戻って、信号Sの受信を待機する。一方、ステップS75で“YES”であれば、つまり信号Sを受信すれば、ステップS77で、発話開始する。ここでは、音声データ814a(A01.wav)を再生する。つまり、ロボットAは、「暑は夏いねぇ〜」と発話する。続くステップS79では、発話を終了したかどうかを判断する。ステップS79で“NO”であれば、つまり発話を終了していなければ、ステップS79に戻って、発話が終了するのを待機する。一方、ステップS79で“YES”であれば、つまり発話が終了すれば、ステップS81で、信号AをロボットBに送信する。このように、ステップS77〜S81の処理は、図9(A)に示したように、スクリプトファイル812aの2行目を読み込むことにより実行される。
続くステップS83では、信号Bを受信したかどうかを判断する。ここでは、図9(A)に示したように、スクリプトファイル812aの3行目を読み込み、信号Bの受信を待機しているのである。つまり、ロボットAについてのコミュニケーション行動の実行タイミングの受信を待機しているのである。
ステップS83で“NO”であれば、つまり信号Bを受信していなければ、ステップS83に戻る。一方、ステップS83で“YES”であれば、つまり信号Bを受信すれば、ステップS85で、ステータス信号すなわち笑いの判定要求をコンピュータ20に送信する。ここでは、図9(A)に示したスクリプトファイル812aの4行目を読み込み、笑いの判定要求を実行しているのである。
続いて、図12に示すステップS87では、コンピュータ20から信号L1を受信したかどうかを判断する。つまり、笑い判定結果を受信し、それが「大うけ」を示しているかどうかを判断する。ステップS87で“YES”であれば、つまり信号L1を受信すれば、ステップS89で、発話開始して、漫才の処理を終了する。ここでは、音声データ814b(A02.wav)を再生する。つまり、ロボットAは、「ええお客さんやなあ」と発話する。ステップS87およびS89の処理は、図9(A)に示したスクリプトファイル812aの5−7行目を読み込むことにより、実行される。
一方、ステップS87で“NO”であれば、つまり信号L1を受信していなければ、ステップS91で、信号L2を受信したかどかを判断する。つまり、笑い判定結果を受信し、それが「小うけ」を示しているかどうかを判断する。ステップS91で“NO”であれば、つまり信号L1およびL2のいずれも受信していない場合には、ステップS87に戻る。しかし、ステップS91で“YES”であれば、ステップS93で、発話開始して、漫才の処理を終了する。ここでは、音声データ814c(A03.wav)を再生する。つまり、ロボットAは、「あ、逆や」と発話する。ステップS91および93の処理は、図9(A)に示したスクリプトファイル812aの8―10行目を読み込むことにより、実行される。
なお、ステップS89およびS93の終了後に、漫才の処理を終了するのは、図9(A)に示したスクリプトファイル812aの11行目のexit文を読み込むためである。
一方、図13に示すように、ロボットBのCPU76は漫才の処理を開始すると、ステップS101で、スクリプト指示を受信したかどうかを判断する。つまり、読み込むスクリプトファイルが指定されたかどうかを判断する。ステップS101で“NO”であれば、つまりスクリプト指定を受信していなければ、同じステップS101に戻る。一方、ステップS101で“YES”であれば、つまりスクリプト指定を受信していれば、ステップS103で、指定されたスクリプトファイルを読み込む。ここでは、スクリプトファイル812bを読み込が、図5〜図7に示したように、スクリプトを1行ずつ読み込む。
続くステップS105では、信号Sを受信したかどうかを判断する。つまり、ここでは、図9(B)に示したように、スクリプトファイル812bの1行目を読み込み、信号Sの待機命令の処理を実行しているのである。ステップS105で“NO”であれば、つまり信号Sを受信していなければ、同じステップS105に戻って、信号Sの受信を待機する。一方、ステップS105で“YES”であれば、つまり信号Sを受信すれば、ステップS107で、信号Aを受信したかどうかを判断する。これは、図9(B)に示したように、スクリプトファイル812bの2行目を読み込み、信号Aの待機命令の処理を実行しているのである。つまり、ロボットBについてのコミュニケーション行動の実行タイミングの受信を待機しているのである。
ステップS107で“NO”であれば、つまり信号Aを受信していなければ、同じステップS107に戻る。しかし、ステップS107で“YES”であれば、つまり信号Aを受信すれば、ステップS109で、発話開始する。ここでは、音声データ814b(B01.wav)を再生する。つまり、ロボットBは、「なんでやねん」と発話する。次のステップS111では、発話終了かどうかを判断する。このステップS109およびS111の処理は、図9(B)に示したスクリプトファイル812bの3行目を読み込むことにより、実行される。
ステップS111で“NO”であれば、つまり発話終了でなければ、同じステップS111に戻る。しかし、ステップS111で“YES”であれば、つまり発話終了であれば、ステップS113で、信号BをロボットAに送信して、漫才の処理を終了する。ステップS113の処理するとともに、漫才の処理を終了するのは、図9(B)に示したスクリプトファイル812bの4行目を読み込むことにより、実行される。
また、コンピュータ20は、図14に示すような全体処理を実行する。図14を参照して、コンピュータ20は全体処理を開始すると、ステップS121で、シナリオ送信の指示があるかどうかを判断する。ここでは、ユーザが入力装置26を操作して、シナリオ送信の指示を入力したかどうかを判断する。ステップS121で“NO”であれば、シナリオ送信の指示がなければ、同じステップS121に戻る。一方、ステップS121で“YES”であれば、つまりシナリオ送信の指示があれば、ステップS123で、ロボットAにシナリオA(ぼけ)を送信するとともに、ロボットBにシナリオB(つっこみ)を送信する。ただし、上述しように、厳密には、スクリプトファイルのファイル名のような識別情報を指定(指示)する。
なお、図11〜図13に示したように、スクリプトファイル812aおよびスクリプトファイル812bで構成される漫才を実行するため、ステップS123では、シナリオAをロボットAに送信し、シナリオBをロボットBに送信するようにしてある。しかし、実際には、ユーザが指定したシナリオが各ロボットに送信されるのである。
続くステップS125では、開始指示があるかどうかを判断する。つまり、ユーザが入力装置26を操作して、漫才の開始指示を入力したかどうかを判断する。ステップS125で“NO”であれば、つまり開始指示が入力されなければ、ステップS125に戻る。しかし、ステップS125で“YES”であれば、つまり開始指示が入力されれば、ステップS127で、ロボットAおよびロボットBに信号Sを送信する。上述したように、信号Sは漫才の開始指示である。
次のステップS129では、笑い判定要求を受信したかどうかを判断する。上述したように、この実施例では、ロボットAが笑い判定要求を送信するようにしてあるが、これはシナリオAに従うためであり、シナリオによっては、ロボットBが笑い判定要求を送信する場合もある。ステップS129で“NO”であれば、つまり笑い判定要求がなければ、同じステップS129に戻る。しかし、ステップS129で“YES”であれば、つまり笑い判定要求を受信すれば、ステップS131で、音声および映像を取得する。つまり、現時点において、マイク22から入力された音声信号(音声データ)のレベル(dB)を検出する。また、現時点から一定時間(数十フレーム〜数百フレーム程度)における、カメラ24の撮影画像から画像の動きを検出する。
次のステップS133では、笑いを判定する。たとえば、予め音声信号のレベルについての閾値(第1閾値)および画像の動きについての閾値(第2閾値)を決定しておき、音声信号のレベルが第1閾値を超える、または、画像の動きが第2閾値を超えると、笑いを「大うけ」と判定する。また、音声信号のレベルが第1閾値以下であり、かつ画像の動きが第2閾値以下であると、笑いを「小うけ」と判定する。
なお、この実施例では、音声および映像の両方に基づいて笑い(ざわめき)を判定するようにしてあるが、いずれか一方に基づいて笑いを判定するようにしてもよい。
続いて、ステップS135では、ロボットAに信号Lを送信する。ただし、ここでは、笑いが「大うけ」であれば、信号L1を送信し、笑いが「小うけ」であれば、信号L2を送信する。また、この実施例では、ロボットAが笑い判定要求を送信したため、信号LをロボットAに送信するよにしてある。つまり、笑い判定要求を送信してきたロボットに信号Lを送信するのである。
そして、ステップS137では、漫才の終了かどうかを判断する。具体的には、ロボットAおよびロボットBの両方から、漫才の処理終了を示す信号を受信したかどうかを判断する。詳細な説明等は省略したが、ロボット12は、スクリプトファイルの実行を終了すると、つまりexit文を読み込むと、シナリオ終了すなわち漫才の処理終了を示す信号をコンピュータ20に送信するのである。
ステップS137で“NO”であれば、つまり漫才の終了でなければ、ステップS121に戻る。一方、ステップS137で“YES”であれば、漫才の終了であれば、そのまま全体処理を終了する。
このように、ユーザが指定してスクリプトファイル(シナリオ)に従って2台のロボット12が漫才を実行する。ここで、たとえば、音声データ814aの内容を変化させたり、2行目のスクリプトで再生する音声データを他の音声データに変化させたりすることにより、ロボットAが「暑は夏いねぇ〜」を発話していたのを、「8月で32度やったら、12月には40度超えるでぇ〜」(説明の便宜上、「音声データ(A04.wab)814d」ということがある。)と発話するように変更したと仮定する。かかる場合には、ロボットAの発話内容が長くなる。しかし、スクリプトファイル812bの2行目のスクリプト(signalwait)では、指定された信号Aの受信を待機するようにしてあるため、上述したような音声データの変更は、スクリプトファイル812aの2行目のスクリプト(speakwait)で、指定された音声データの内容を変更するか、指定する音声データを変更するだけでよい。つまり、他のロボット12(ここでは、ロボットB)が実行するコミュニケーション行動の実行タイミング等を考慮する必要がない。つまり、ロボットAで実行するスクリプトファイル812aのみを変更(編集)すればよいのである。このため、他のロボット(ここでは、ロボットB)のコミュニケーション行動の実行タイミングを変更するなどの手間を省くことができる。
また、音声データ814aを発話した後に、音声データ814dをさらに発話させるように、スクリプトファイル812aを変更(スクリプトの追加)することもできる。かかる場合には、図9(A)に示した2行目のスクリプトを「speakwait”A01.wav”」に変更し、つまり信号Aの送信を削除し、2行目と3行目のスクリプトの間に、「speakwait”A04.wav”:A」のスクリプトを追加すればよい。このようにすれば、ロボットAは、「暑は夏いねぇ〜」、「8月で32度ったら、12月には40度超えるでぇ〜」と発話した後に、信号AをロボットBに送信することができる。このように、スクリプトを追加することもできる。
さらに、音声データ814aおよび音声データ814dを発話していたのを、音声データ814aのみを発話するように、スクリプトファイル812aを変更(スクリプトの削除)をする場合には、上述した「speakwait”A04.wav”:A」のスクリプトを削除し、「speakwait”A01.wav”」のスクリプトを図9(A)に示したように、「speakwait”A01.wav”:A」に変更すればよい。このように、スクリプトを削除することもできる。
なお、これらのことは、ロボット12に身体動作を実行させたり、ロボット12を移動させたりするようなスクリプトを変更したり、追加したり、削除したりする場合も同様である。
この実施例によれば、他のロボットから実行タイミングを受信したことに応じてコミュニケーション行動を実行するので、連鎖的に発話したり、身体動作したりすることができる。また、実行タイミングを受信するようにしてあるため、1のロボットのスクリプトファイルを編集しても、他方のロボットのスクリプトファイルを編集する必要がない。つまり、開発および編集の手間が少なく、それらに掛るコストを低減することができる。
なお、この実施例では、システムにマイクおよびカメラの両方を設けるようにしたが、いずれか一方からの入力に基づいて笑いを判定するようにしてもよい。つまり、いずれか1つを省略することもできる。
また、この実施例では、システムにマイクおよびカメラを設けるようにしたが、マイクおよびカメラを省略することもできる。たとえば、ロボットに設けられたマイク16およびカメラ(全方位カメラ52,眼カメラ54)を用いることができる。かかる場合には、音声信号のレベルやフレーム間の動きに基づいて、ロボットで笑い判定することができる。
さらに、この実施例では、2台のロボットがインタラクションする場合について説明したが、3台以上のロボットがインタラクションするようにすることもできる。かかる場合には、実行タイミングの信号をブローキャストするようにし、ブロードキャストされた実行タイミングの信号を各ロボットが受信し、当該信号の受信を待機しているロボットが、当該信号の受信に応じてスクリプトに従うコミュニケーション行動を実行するようにすればよい。
図1はこの発明のコミュニケーションロボットシステムの一例を示す図解図である。 図2は図1実施例に示すロボットの外観を説明するための図解図である。 図3は図1および図2に示すロボットの電気的な構成を示す図解図である。 図4は図1実施例におけるロボットで実行されるスクリプトファイルの作成に用いられるスクリプトの一覧を示す図解図である。 図5は図3に示すロボットのCPUが実行するスクリプトの読込み処理の一部を示すフロー図である。 図6は図3に示すロボットのCPUが実行するスクリプトの読込み処理の他の一部であり、図5に後続するフロー図である。 図7は図3に示すロボットのCPUの実行するスクリプトの読込み処理のその他の一部であり、図5および図6に後続するフロー図である。 図8は図1に示すコミュニケーションロボットシステムの設置例を示す図解図である。 図9は図1に示すロボットによって実行されるスクリプトファイルの具体例を示す図解図である。 図10は図3に示すメモリ80のメモリマップの一例を示す図解図である。 図11は図1に示す一方のロボットの漫才の処理の一部を示すフロー図である。 図12は図1に示す一方のロボットの漫才の処理の他の一部であり、図11に後続するフロー図である。 図13は図1に示す他方のロボットの漫才の処理を示すフロー図である。 図14は図1に示すコンピュータの全体処理を示すフロー図である。
符号の説明
10 …コミュニケーションロボットシステム
12 …コミュニケーションロボット
20 …コンピュータ
22 …マイク
24 …カメラ
26 …入力装置
38 …衝突センサ
42 …超音波距離センサ
52 …全方位カメラ
54 …眼カメラ
64 …タッチセンサ
76 …CPU
80 …メモリ
82 …モータ制御ボード
84 …センサ入力/出力ボード
86 …音声入力/出力ボード
88−96 …モータ
98 …通信LANボード
100 …無線通信装置

Claims (4)

  1. 少なくとも発話を含むコミュニケーション行動を実行するコミュニケーションロボットであって、
    他のコミュニケーションロボットから送信された実行タイミングを受信する実行タイミング受信手段、
    前記実行タイミング受信手段によって実行タイミングを受信したことに応じて、前記コミュニケーション行動を実行するコミュニケーション実行手段、および
    前記コミュニケーション実行手段によってコミュニケーション行動を実行開始することまたは実行終了したことに応じて、他のコミュニケーションロボットに実行タイミングを送信する実行タイミング送信手段を備える、コミュニケーションロボット。
  2. 前記コミュニケーション行動は身体動作をさらに含む、請求項1記載のコミュニケーションロボット。
  3. 外部要因を検出する外部要因検出手段をさらに備え、
    前記コミュニケーション実行手段は、前記外部要因検出手段によって検出された外部要因に応じて異なる種類のコミュニケーション行動を実行する、請求項1または2記載のコミュニケーションロボット。
  4. 前記外部要因検出手段は、音および映像の少なくとも一方に基づいて外部要因を検出する、請求項3記載のコミュニケーションロボット。
JP2005085302A 2005-03-24 2005-03-24 コミュニケーションロボット Withdrawn JP2006263858A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005085302A JP2006263858A (ja) 2005-03-24 2005-03-24 コミュニケーションロボット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005085302A JP2006263858A (ja) 2005-03-24 2005-03-24 コミュニケーションロボット

Publications (1)

Publication Number Publication Date
JP2006263858A true JP2006263858A (ja) 2006-10-05

Family

ID=37200357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005085302A Withdrawn JP2006263858A (ja) 2005-03-24 2005-03-24 コミュニケーションロボット

Country Status (1)

Country Link
JP (1) JP2006263858A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102596516A (zh) * 2009-07-10 2012-07-18 奥尔德巴伦机器人公司 用于产生移动机器人的情境行为的系统和方法
JP2015171737A (ja) * 2014-03-11 2015-10-01 本田技研工業株式会社 ロボット、およびロボットの制御方法
JP2017226047A (ja) * 2016-06-23 2017-12-28 カシオ計算機株式会社 ロボット、ロボット制御システム、ロボット制御方法及びプログラム
WO2020039754A1 (ja) * 2018-08-22 2020-02-27 ソニー株式会社 情報処理装置及び情報処理方法
JP2021067878A (ja) * 2019-10-25 2021-04-30 東京瓦斯株式会社 音声再生システム、音声再生装置およびプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102596516A (zh) * 2009-07-10 2012-07-18 奥尔德巴伦机器人公司 用于产生移动机器人的情境行为的系统和方法
JP2012532390A (ja) * 2009-07-10 2012-12-13 オルドウバラン、ロボティクス エス、ア 移動ロボットのコンテキスト動作を生成するためのシステムおよび方法
US9205557B2 (en) 2009-07-10 2015-12-08 Aldebaran Robotics S.A. System and method for generating contextual behaviors of a mobile robot
JP2015171737A (ja) * 2014-03-11 2015-10-01 本田技研工業株式会社 ロボット、およびロボットの制御方法
JP2017226047A (ja) * 2016-06-23 2017-12-28 カシオ計算機株式会社 ロボット、ロボット制御システム、ロボット制御方法及びプログラム
WO2020039754A1 (ja) * 2018-08-22 2020-02-27 ソニー株式会社 情報処理装置及び情報処理方法
JPWO2020039754A1 (ja) * 2018-08-22 2021-08-26 ソニーグループ株式会社 情報処理装置及び情報処理方法
US11869499B2 (en) 2018-08-22 2024-01-09 Sony Corporation Information processing apparatus and information processing method
JP7420075B2 (ja) 2018-08-22 2024-01-23 ソニーグループ株式会社 情報処理装置及び情報処理方法
JP2021067878A (ja) * 2019-10-25 2021-04-30 東京瓦斯株式会社 音声再生システム、音声再生装置およびプログラム

Similar Documents

Publication Publication Date Title
JP5429462B2 (ja) コミュニケーションロボット
EP1669172B1 (en) Communication robot control system
JP5033994B2 (ja) コミュニケーションロボット
JP4822319B2 (ja) コミュニケーションロボットおよびそれを用いた注意制御システム
JP5120745B2 (ja) コミュニケーションロボット
US7076334B2 (en) Robot apparatus and method and system for controlling the action of the robot apparatus
CN1304177C (zh) 机器人装置及其控制方法
JP2009241166A (ja) ロボット遠隔操作システム
JP4386367B2 (ja) コミュニケーションロボット改良システム
JP2003266351A (ja) ロボット装置及びロボット装置の動作制御方法
JP2003285288A (ja) 充電システム及び充電制御方法、ロボット装置、充電装置、及び充電制御プログラム及び記録媒体
CN1748958A (zh) 机器人设备和控制其行为的方法
JP2004230479A (ja) コミュニケーションロボットおよびそれを用いたコミュニケーションシステム
JP2006263858A (ja) コミュニケーションロボット
US20180376069A1 (en) Erroneous operation-preventable robot, robot control method, and recording medium
WO2022228068A1 (zh) 电子设备的图像获取方法、装置、系统及电子设备
JP2007160427A (ja) ロボット制御システム
JP4798581B2 (ja) ロボットシステム
JP6610609B2 (ja) 音声対話ロボットおよび音声対話システム
JP4433273B2 (ja) ロボット装置及びロボット装置の制御方法
JP5324956B2 (ja) 道案内ロボット
JP2005202075A (ja) 対話制御システム及びその方法並びにロボット装置
Jean et al. Development of an office delivery robot with multimodal human-robot interactions
JP2004227276A (ja) 人間のコミュニケーション行動記録システムおよび方法
JP2003266353A (ja) ロボット装置及びその制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080603