図1を参照して、この実施例のロボット遠隔操作システム10は、ネットワーク100を介して接続された、複数のロボット12,14、中央制御装置16および操作端末18を含む。
ロボット12,14は、コミュニケーションロボットであり、主として人間Aのようなコミュニケーションの対象とコミュニケーション行動を実行することが可能な相互作用指向のロボットであり、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。ロボット12,14は、一例として、受付ロボットや道案内ロボットなどであり、たとえば或るイベント会場や会社の受付などの様々な場所および状況に配置され、通常は自律制御によって、たとえば受付や道案内などの役割を果たす。しかし、自律制御だけでは対応することが難しい事態になった場合、たとえばトラブルが生じたり、より細やかな対応(コミュニケーション等)が求められる場面になったりした場合などには、ロボット12,14はオペレータを呼び出す。そして、ロボット12,14は、呼び出したオペレータによって入力された操作コマンド情報を受信したときには、当該操作コマンド情報に基づいて自身の動作を制御する。つまり、ロボット12,14は、オペレータによって必要に応じて遠隔操作される。
なお、図1には、簡単のため、2台のロボット(ロボット12およびロボット14)が示してあるが、これに限定される必要はなく、複数であれば何台でもかまわない。また、ロボット12,14を遠隔操作する操作端末18も1台だけ示してあるが、操作端末18の数は、ロボット12,14の台数Nよりも少ない台数Mであれば何台でもかまわない(すなわち、N>M)。なお、図1においては省略するが、原則的に1台の操作端末18に対して1人のオペレータが担当し、操作端末18の操作を行う。しかし、たとえば長時間ロボット12,14を作動させるときなどは、複数のオペレータが交代で操作端末18の操作を行うようにしてもよい。また、たとえば或る操作端末18を操作するオペレータがいないときなどは、当該操作端末18が使用休止の状態にされてもよい。また、図1には、ロボット12,14が応対する人間Aを1人示してあるが、もちろん複数でもかまわない。
図2は、この実施例のロボット12の外観を示す正面図であり、この図2を参照して、ロボット12のハードウェアの構成について説明する。ここで、ロボット14は、ロボット12と同じ構成であるため、ロボット14についての説明は省略する。
図2に示すように、ロボット12は台車22を含み、この台車22の下面にはロボット12を自律移動させる車輪24が設けられる。車輪24は車輪モータ26(図3参照)によって駆動され、台車22すなわちロボット12を前後左右任意の方向に動かすことができる。このように、ロボット12は配置された環境内を移動可能なものであるが、場合によっては環境内の所定位置に固定的に設けられてもよい。
なお、図2においては省略するが、台車22の前面には、衝突センサ28(図3参照)が取り付けられ、この衝突センサ28は台車22への人や他の障害物の接触を検知する。つまり、ロボット12の移動中に障害物との接触を検知すると、直ちに車輪24の駆動を停止してロボット12の移動を急停止させる。
また、この実施例では、ロボット12の背の高さは、人、特に子供に威圧感を与えることのないように、100cm程度とされる。ただし、この背の高さは変更可能である。
台車22の上には、多角形柱のセンサ取付パネル30が設けられ、このセンサ取付パネル30の各面には、超音波距離センサ32が取り付けられる。この超音波距離センサ32は、センサ取付パネル30すなわちロボット12の周囲の主として人との距離を計測するものである。
また、台車22の上には、さらに、その下部がセンサ取付パネル30に囲まれて、ロボット12の胴体が直立するように設けられる。この胴体は、下部胴体34と上部胴体36とによって構成され、下部胴体34および上部胴体36は、連結部38によって互いに連結される。図示は省略するが、連結部38には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体36の高さすなわちロボット12の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ40(図3参照)によって駆動される。
なお、上述したロボット12の背の高さは、上部胴体36をそれの最下位置にしたときのものである。したがって、ロボット12の背の高さは、100cm以上にすることも可能である。
上部胴体36には、1つの全方位カメラ42が設けられる。全方位カメラ42はたとえば背面側上端部のほぼ中央から延びる支柱44上に設置される。全方位カメラ42は、ロボット12の周囲を撮影するものであり、後述する眼カメラ48とは区別される。この全方位カメラ42としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。また、上部胴体36の正面側のほぼ中央には、1つのマイク46が設けられる。マイク46は、周囲の音、とりわけコミュニケーション対象である人の声を取り込む。なお、これら全方位カメラ42およびマイク46の設置位置は上部胴体36に限られず適宜変更され得る。
上部胴体36の両肩には、それぞれ、肩関節50Rおよび50Lによって、上腕52Rおよび52Lが設けられる。肩関節50Rおよび50Lは、それぞれ、3軸の自由度を有する。すなわち、肩関節50Rは、X軸、Y軸およびZ軸のそれぞれの軸廻りにおいて上腕52Rの角度を制御できる。Y軸は、上腕52Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節50Lは、A軸、B軸およびC軸のそれぞれの軸廻りにおいて上腕52Lの角度を制御できる。B軸は、上腕52Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に対して、それぞれ異なる方向から直交する軸である。
また、上腕52Rおよび52Lのそれぞれの先端には、肘関節54Rおよび54Lを介して、前腕56Rおよび56Lが設けられる。肘関節54Rおよび54Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕56Rおよび56Lの角度を制御できる。
なお、上腕52Rおよび52Lならびに前腕56Rおよび56Lの変位を制御するX軸,Y軸,Z軸,W軸およびA軸,B軸,C軸,D軸では、それぞれ、「0度」がホームポジションであり、このホームポジションでは、図2に示すように、上腕52Rおよび52Lならびに前腕56Rおよび56Lは下方に向けられる。
また、図示は省略するが、上部胴体36の肩関節50Rおよび50Lを含む肩の部分や上述の上腕52Rおよび52Lならびに前腕56Rおよび56Lには、それぞれ、タッチセンサ(図3で包括的に示す。:58)が設けられていて、これらのタッチセンサ58は、人がロボット12の当該各部位に触れたかどうかを検知する。
前腕56Rおよび56Lのそれぞれの先端には、手に相当する球体60Rおよび60Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
上部胴体36の中央上方には、首関節62を介して頭部64が設けられる。首関節62は、3軸の自由度を有し、S軸、T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上(鉛直上向き)に向かう軸であり、T軸およびU軸は、それぞれ、そのS軸に対して異なる方向で直交する軸である。頭部64には、人の口に相当する位置に、スピーカ66が設けられる。スピーカ66は、ロボット12が、それの周辺の人に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ66は、ロボット12の他の部位、たとえば胴体などに設けられてもよい。
また、頭部64には、目に相当する位置に眼球部68Rおよび68Lが設けられる。眼球部68Rおよび68Lは、それぞれ眼カメラ48Rおよび48Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがあり、また、右の眼カメラ48Rと左の眼カメラ48Lとをまとめて眼カメラ48ということもある。
眼カメラ48は、ロボット12に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。眼カメラ48としては、上述した全方位カメラ42と同様のカメラを用いることができる。
たとえば、眼カメラ48は眼球部68内に固定され、眼球部68は眼球支持部(図示せず)を介して頭部64内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部64に対して設けられる軸であり、α軸は頭部64の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部64の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部64がホームポジションにあるとき、α軸はS軸と平行であり、β軸はU軸と平行であるように設定される。このような頭部64において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ48の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
なお、眼カメラ48の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図2に示すように、眼カメラ48のカメラ軸は頭部64の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
図3はロボット12の電気的な構成を示すブロック図であり、この図3を参照して、ロボット12は、全体を制御するCPU72を含む。CPU72は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス74を介して、メモリ76、モータ制御ボード78、センサ入力/出力ボード80および音声入力/出力ボード82に接続される。
なお、電気的構成についても、ロボット12とロボット14とは同じであるため、ここでは、ロボット12についてのみ説明し、ロボット14の説明については省略する。また、後述する当該システム全体の説明についても、ロボット12とロボット14とは同様に扱われるため、代表して、ロボット12に対してのみ説明する場合がある。
メモリ76は、図示は省略するが、ROMやHDDおよびRAMを含み、ROMやHDDにはロボット12の動作を制御する制御プログラムが予め記憶される。制御プログラムには、たとえば、各センサ28,32,46,58またはカメラ42,48による検知情報を検出する検出プログラム、必要に応じてオペレータを呼び出すための呼出プログラム、外部コンピュータすなわち中央制御装置16あるいは操作端末18との間で動作に必要なデータを送受信するための通信プログラム、自律制御により自身の動作を制御する自律制御プログラムおよび受信した操作コマンド情報に基づいて自身の動作を制御する遠隔制御プログラムなどがある。お辞儀などの個々のコミュニケーション行動は、モジュール化された各行動プログラムによって実現され、メモリ76には複数の行動プログラムが各識別情報(操作コマンド)に対応付けて記憶されてよい。CPU72は複数のルールと現在の状況に基づいて次の行動を決定していくことでコミュニケーション行動を自律制御できる。また、メモリ76には各行動を実行する際に発生すべき音声または声の音声データ(音声合成データ)および所定の身振りを提示するための角度データなども記憶される。また、RAMはワークメモリやバッファメモリとして用いられる。
モータ制御ボード78は、たとえばDSPで構成され、各腕や頭部および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード78は、CPU72からの制御データを受け、右眼球部68Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ」と示す。)84の回転角度を制御する。同様に、モータ制御ボード78は、CPU72からの制御データを受け、左眼球部68Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ」と示す。)86の回転角度を制御する。
また、モータ制御ボード78は、CPU72からの制御データを受け、右肩関節50RのX軸、Y軸およびZ軸のそれぞれの角度を制御する3つのモータと右肘関節54RのW軸の角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ」と示す。)88の回転角度を調節する。同様に、モータ制御ボード78は、CPU72からの制御データを受け、左肩関節50LのA軸、B軸およびC軸のそれぞれの角度を制御する3つのモータと左肘関節54LのD軸の角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ」と示す。)90の回転角度を調整する。
さらに、モータ制御ボード78は、CPU72からの制御データを受け、頭部64のS軸、T軸およびU軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ」と示す。)92の回転角度を制御する。さらにまた、モータ制御ボード78は、CPU72からの制御データを受け、腰モータ40および車輪24を駆動する2つのモータ(図3では、まとめて「車輪モータ」と示す。)26の回転角度を制御する。
なお、この実施例では、車輪モータ26を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ26と同様に、直流モータを用いるようにしてもよい。
センサ入力/出力ボード80もまた、同様に、DSPで構成され、各センサからの信号を取り込んでCPU72に与える。すなわち、超音波距離センサ32のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード80を通してCPU72に入力される。また、全方位カメラ42からの映像信号が、必要に応じてこのセンサ入力/出力ボード80で所定の処理を施された後、CPU72に入力される。眼カメラ48からの映像信号も、同様にして、CPU72に入力される。また、上述した複数のタッチセンサ(図3では、まとめて「タッチセンサ58」と示す。)、および衝突センサ28からの信号がセンサ入力/出力ボード80を介してCPU72に与えられる。
音声入力/出力ボード82もまた、同様に、DSPで構成され、CPU72から与えられる音声合成データに従った音声または声がスピーカ66から出力される。また、マイク46からの音声入力が、音声入力/出力ボード82を介してCPU72に取り込まれる。
また、CPU72は、バス74を介して通信LANボード94および無線通信装置96に接続される。CPU72は、通信LANボード94および無線通信装置96を用いて、たとえば無線LANアクセスポイントを介してLAN,インターネットのようなネットワーク100に通信接続する。通信LANボード94は、DSPで構成され、CPU72から送られる送信データを無線通信装置96に与え、無線通信装置96から送信データを、ネットワーク100を介して中央制御装置16もしくは操作端末18に送信させる。具体的には、通信LANボード94は、全方位カメラ42および眼カメラ48によって検知した視覚情報やマイク46によって検知した聴覚情報などの検知情報を中央制御装置16もしくは操作端末18に送信させる。また、通信LANボード94は、無線通信装置96を介して操作端末18からの操作コマンド情報を受信し、受信した操作コマンド情報をCPU72に与える。なお、ロボット12が移動不可能に設置されている場合、ネットワーク100へは有線で接続されてもよい。また、ロボット12と中央制御装置16もしくは操作端末18とが無線により直接通信するように構成してもよい。
また、CPU72には無線タグ読取装置98が接続される。無線タグ読取装置98は、無線タグ(RFIDタグ)から送信される識別情報の重畳された電波をアンテナを介して受信し、電波信号を増幅し、当該電波信号から識別情報を分離し、当該識別情報を復調(デコード)してCPU72に与える。無線タグはイベント会場や会社等にいる人に装着されており、無線タグ読取装置98は通信可能範囲内の無線タグを検出する。なお、無線タグはアクティブ型であってもよいし、無線タグ読取装置98から発信される電波に応じて駆動されるパッシブ型であってもよい。
図1に戻って、中央制御装置16は、当該遠隔操作システム10におけるオペレータの呼び出しを制御するコンピュータであり、ロボット12および操作端末18の状態を示す情報を管理する。中央制御装置16は、図示は省略するが、CPUを含み、CPUにはメモリやデータベース、通信装置などが接続される。中央制御装置16は、通信装置を介してネットワーク100に有線または無線で接続されている。
メモリには、当該中央制御装置16の動作を制御するための制御プログラムおよび必要なデータが記憶される。制御プログラムは、たとえば、ロボット12および操作端末18との間で動作に必要なデータを送受信するための通信プログラムおよびロボット12からオペレータの呼び出しがあったときに適切なオペレータ(操作端末18)を選択するための選択プログラムを含む。
また、データベースには、各ロボット12の情報を示すロボット情報テーブルおよび各操作端末18の情報を示すオペレータ端末情報テーブルが記憶される。また、イベント会場や会社等に存在する人間の情報(たとえば無線タグの識別情報、使用言語や行動履歴)なども記憶されている。
ロボット情報テーブルには、図4に示すように、ロボット名、状態、位置および対話相手などの情報が登録される。これらの情報はロボット12の識別情報に対応付けて記憶されている。ロボット名は、当該ロボット12の名前(たとえば、R1,R2)を画面に表示する際に使用され得る。状態を示す情報としては、当該ロボット12の現在の状態が登録される。具体的には、「busy」(たとえば、案内や受付の状況において人間と対話などのコミュニケーション行動を実行している状態)、もしくは「idle」(たとえば、人間と対話などのコミュニケーション行動を実行していない状態、すなわち、空いている状態)が登録される。位置を示す情報としては、当該ロボット12が配置されている現在位置の情報が登録される。具体的には、当該ロボット12の配置された建物や会場などの場所を示す情報(たとえば、ATR(京都)受付、X社(東京)受付)、および当該場所において当該ロボット12が現在存在している位置の座標(たとえば、「120,140」)が登録される。対話相手を示す情報としては、当該ロボット12が対話などのコミュニケーション行動を実行している人間の情報が登録される。具体的には、対話相手の識別情報(ID)に対応付けて、名前(たとえば山田太郎)、使用言語(たとえば日本語)および現在位置(座標)などが登録される。また、対話相手がいない場合は「null」(すなわち、コミュニケーション行動を行う対象が存在しない)と登録される。
中央制御装置16は、各ロボット12との通信によって、当該ロボット12の状態、現在位置座標、対話相手のIDおよび位置などの情報をたとえば一定時間ごとに取得して、このロボット情報テーブルを生成し更新する。なお、上述したように、データベースには、会社や会場内に存在する人間の情報が予め記憶されているので、中央制御装置16は、ロボット12から対話相手の識別情報(ID)を受信すると、この識別情報に基づいて当該人間の名前、使用言語などの情報を読み出し、ロボット情報テーブルに登録する。図4には示していないが、たとえば、対話相手の来訪回数や来訪してからの経過時間、ロボット12が当該相手に既に実行した行動の履歴(たとえば、挨拶を済ませたなど)などの情報も必要に応じてデータベースから取得されて適宜登録される。なお、ロボット情報テーブルには、ロボットのアドレス(IPアドレス)も登録されてよい。
たとえば、図4に示すロボット情報からは、R1というロボット名のロボット12は、ATR(京都)の受付に配置されており、現在の座標位置は「120,140」である。このロボットR1は、IDが10720で山田太郎という名前の人間と対話中であり、状態は「busy」であるということが分かる。なお、当該人間の使用する言語は日本語であり、現在座標は「110,130」である。また、R2というロボット名のロボット12は、X社(東京)の受付に配置されており、現在の座標位置は「270,110」である。なお、現在は対話相手が「null」(すなわち、対話相手が存在しない)であり、状態は「idle」(すなわち、空いている状態)であるということが分かる。
オペレータ端末情報テーブルには、図5に示すように、操作端末ID(識別情報)に対応付けて、位置、オペレータ情報および状態などの情報が登録される。位置を示す情報としては、当該操作端末18が設置されている場所(都道府県または地域など)が登録される。オペレータ情報は、当該操作端末18を操作しているオペレータに関する情報である。具体的には、オペレータの識別情報(たとえば、op1,op2,op3など)、当該オペレータが使用できる言語(たとえば、日本語,英語,中国語など)および操作端末18による遠隔操作を経験した年月ないし経験値(操作歴)などの情報が登録される。もちろん、図5に示した他にも、オペレータに関する情報が必要に応じて適宜登録される。なお、当該操作端末18を操作しているオペレータが存在しない場合は「null」と記載される。状態を示す情報としては、当該操作端末18の現在の状態が登録される。具体的には、「controlling−R1」(ロボットR1を操作中である状態)、「idle」(現在、どのロボット12も操作せずに中央制御装置16からの呼び出し待ち、すなわち、空いている状態)および「not in use」(操作するオペレータがいないなどの理由で使用不可能の状態)などが記載される。なお、オペレータ端末情報テーブルには、操作端末18のアドレス(IPアドレス)も登録されてよい。中央制御装置16は、たとえば、各操作端末18との通信によって、当該操作端末18の位置、オペレータ情報および状態などの情報を一定時間ごとに取得して、このオペレータ端末情報テーブルを生成し更新する。あるいは、各操作端末18でオペレータや状態の変更があったときに、当該操作端末18からオペレータ情報や状態が送信されるようにしてもよいし、中央制御装置16の管理者が入力によってオペレータ端末情報テーブルを生成および更新するようにしてもよい。
たとえば、図5に示すオペレータ端末情報からは、操作端末IDがAAAの操作端末18は大阪に設置されており、当該操作端末18(AAA)の操作は、現在、識別情報がop1のオペレータが担当していることが分かる。当該オペレータ(op1)は、日本語および英語を使用することができ、操作端末18(すなわち、ロボット12)の操作歴は3年である。また、現在は「controlling−R1」(ロボットR1を操作中)であるということが分かる。また、操作端末IDがBBBの操作端末18は京都に設置されており、当該操作端末18(BBB)の操作は、現在、識別情報がop2のオペレータが担当している。当該オペレータ(op2)は、日本語および中国語を話すことができ、操作端末18(すなわち、ロボット12)の操作歴は6ヶ月である。また、現在はロボット12の操作をしておらず、「idle」(空いている状態)であるということが分かる。また、操作端末IDがCCCの操作端末18は東京に設置されているが、現在、担当するオペレータが「null」である(存在しない)ため、「not in use」である(使用できない状態)ということが分かる。
また、操作端末18は、コンピュータであり、図示は省略するがCPUを含み、CPUには、メモリ、表示装置、入力装置、スピーカおよび通信装置などが接続される。操作端末18は、通信装置を介してネットワーク100に有線または無線で接続されている。
メモリには、当該操作端末18の動作を制御するための制御プログラムおよび必要なデータが記憶される。制御プログラムは、たとえば、ロボット12および中央制御装置16との間で動作に必要なデータを送受信するための通信プログラム、入力装置から入力された操作コマンドを検出する検出プログラムおよび表示装置に画像などを表示するための表示プログラムを含む。
表示装置には、後述するように、GUIとして、ロボットカメラ画像、ロボット情報および操作パネルなどを含む遠隔操作画面が表示される。入力装置はマウス、キーボードまたはタッチパネルなどであり、オペレータは入力装置を操作することによってロボット12を遠隔操作するための遠隔操作コマンドを遠隔操作画面で入力することができる。スピーカは、ロボット12のマイク46が取得した聴覚情報を出力する。
なお、操作端末18は、ロボット12と離れた場所、たとえばオフィスに配置されるが、たとえばオペレータによって持ち運び可能もしくは携帯可能に形成されてもよいし、また、或る場所に固定的に設けられてもよい。
このロボット遠隔操作システム10では、上述したように、ロボット12は、通常、自律制御によって受付や道案内などのコミュニケーション行動を伴う動作を行う。しかし、自律制御だけでは対応することが難しい状況や事態になった場合など必要に応じて、当該ロボット12を遠隔操作する操作端末18すなわちオペレータを呼び出す。
ロボット12には、図示は省略するが、オペレータ呼出条件が予めメモリ76に記憶されている。オペレータ呼出条件が、ロボット12において満足すると判定されたとき、オペレータが呼び出される。オペレータ呼出条件は、ロボット12が必要に応じてオペレータを呼び出すための条件である。この呼出条件によって、ロボット12にトラブルが生じたり、コミュニケーションでより細やかな対応が必要とされたりする状況などになったか否かが判定される。呼出条件は、各種センサの出力情報を元に判定される条件であってよい。たとえば、条件の1つは、音声認識で所定のキーワード(「責任者を呼んで」など)が検出されたことであってよい。キーワードとしては、ロボット12が相手の意図を分かっていないことを伝えるワード、たとえば「違う」、「そうじゃないんだけど」もしくは「わからないかなあ」も考えられる。また、他の条件は、超音波距離センサ32で取得された距離が1m以内である状態が5分以上になったこと(すなわち、人がロボット12と長い間対話している状態)であってよい。さらにまた、他の条件は、特定のIDの無線タグを検出したこと(たとえばVIPとして登録された人が現れたこと)であってもよい。なお、呼出条件としては、適宜、様々な条件が設定され得る。たとえば、人の顔表情認識で怒りが検出されたこと、顔同定機能で特定の人を検出したことが考えられる。なお、他の実施例では、呼出条件として、ロボット12または周囲の環境に設けられた他のセンサの出力に基づく条件が設定されてよい。たとえば、オペレータ呼出ボタンがロボット12または周囲の環境に設けられてよい。また、体表に設けた触覚センサ(たとえば皮膚センサ)で殴られた場合の反応が検出されたこと、赤外センサで長時間連続して人が検知されたこと、環境の混雑センサで一定以上の混雑度が検出されたことなども考えられる。
ロボット12のCPU72は、オペレータ呼出条件が満たされたと判断すると、オペレータを呼び出す要求を、ネットワーク100を介して中央制御装置16に送信する。
中央制御装置16のCPUは、ロボット12から、オペレータの呼出要求を受けると、ロボット情報テーブルおよびオペレータ端末情報テーブルに基づいて最も適切な操作端末18すなわちオペレータを選択する。中央制御装置16のメモリには、適切な操作端末18を選択するための条件が記憶されており、複数の操作端末18の中から当該条件に適合する操作端末18が選択される。
オペレータ選択のための第1の条件は、操作端末18の状態が「idle」であることである。この実施例では、他のロボット12を既に操作中であったり、オペレータが不在であったりする操作端末18を利用することはできないためである。
さらに、この実施例では、オペレータ選択条件として、制約条件および希望条件が判定される。
制約条件は、オペレータを呼び出した当該ロボット12(要求ロボット)を操作するために、操作端末18ないしオペレータが必ず満たさなければならない条件である。すなわち、或る操作端末18がどのロボット12も操作していない状態、すなわち「idle」状態であっても、制約条件を満たさなければ、当該操作端末18が選択されることはない。
制約条件は、この実施例では、現在のロボット12が置かれている状況に応じて設定される。この実施例では、ロボット12の対話相手の使用言語と同一の言語を使用可能なオペレータが操作する操作端末18であることが条件とされる。この場合には、ロボット12の応対している相手が話している事をオペレータが理解できるので、遠隔操作によって現在の状況に適切に対応することが可能になる。たとえば、中央制御装置16のCPUは、ロボット12からオペレータ呼出要求を受けると、ロボット情報テーブルから当該ロボット12の対話相手の使用言語を読み出して、当該使用言語を操作端末18の制約条件として設定する。状況に応じて、複数の制約条件が設定されてもよいし、1つの制約条件が設定されてもよい。
なお、他の制約条件としては、たとえばロボット12で満足された呼出条件に対応する条件が設定されてもよい。また、制約条件は、状況にかかわらず固定的に設定されてもよい。さらにまた、他の実施例では、制約条件が設定されなくてもよい。
希望条件は、オペレータを呼び出したロボット12を操作するために、操作端末18ないしオペレータが満たすことが望ましい条件である。すなわち、希望条件を満たさなくても制約条件を満たしていればロボット12を操作する操作端末18として選択される場合がある。複数の操作端末18が制約条件を満たす場合には、この実施例では、希望条件を満たす操作端末18が優先的に選択される。また、複数の希望条件が設定される場合には、たとえば、より多くの希望条件を満たす操作端末18が選択される。あるいは、希望条件ごとに異なる優先順位または優先度が予め設定される場合には、優先順位の一番高い希望条件を満たす操作端末18が選択されてもよいし、もしくは、満足された希望条件の優先度の累計が最大の操作端末18が選択されてもよい。優先度によっても1つの操作端末18に絞られない場合には、たとえばランダムに1つの操作端末18が選択されてよい。
なお、複数の希望条件が設定されてもよいし、1つの希望条件だけが設定されてもよい。また、希望条件は設定されてなくてもよく、その場合に複数の操作端末18が制約条件を満足するときには、たとえばランダムに1つの操作端末18が選択されてよい。
希望条件は、たとえば通信条件や人的条件などによって決まる条件であってよく、また、予め設定されてよい。たとえば、ロボット12と操作端末18の位置(距離)が近いことが条件とされてよいし、オペレータの操作歴(経験値)が所定値以上であることが条件とされてよい。このように希望条件を適宜に設定することによって、操作端末18からの遠隔操作をより円滑に行わせることが可能になる。なお、他の実施例では、希望条件は、現在のロボット12が置かれている状況、たとえば、満足された呼出条件、トラブルの内容、対話相手に応じて設定されてもよく、その場合には、ロボット12の状況によりふさわしい操作端末18を選択することができる。
中央制御装置16は、ロボット12の呼出要求に応じて操作端末18を選択すると、遠隔操作を開始するための情報を、呼出要求を送信した要求ロボット12および選択された操作端末18の少なくとも一方に送信し、遠隔操作の開始を指示する。すなわち、中央制御装置16は、当該操作端末18に当該ロボット12の遠隔操作を依頼する。具体的には、選択した操作端末18に対して、呼出要求をしたロボット12に関する情報(名前、位置、対話相手、アドレスなど)を含む遠隔操作開始指示を送信する。一方、呼出要求をしたロボット12に対しては、中央制御装置16は、呼出応答を送信して選択した操作端末18を紹介する。具体的には、選択した操作端末18のアドレスなどの情報を含む遠隔操作開始指示を送信する。このような呼出応答を受信したロボット12は、操作端末18に対して、当該ロボット12の眼カメラ48が取得した画像情報およびマイク46が取得した聴覚情報などを送信する。
なお、ロボット12および操作端末18が、すべての操作端末18およびすべてのロボット12のアドレスをそれぞれ予め記憶している場合には、中央制御装置16は、選択された操作端末18の識別情報をロボット12に送信し、ロボット12の識別情報を操作端末18に送信するようにしてよい。
操作端末18は、中央制御装置16からロボット12の遠隔操作の依頼を受けると、表示装置にたとえば図6に示すような遠隔操作画面を表示する。これによって、当該操作端末18のオペレータにロボット12から呼び出しがあったことを知らせることができる。なお、他の方法、たとえば操作端末18のスピーカからの音声出力によって、オペレータに遠隔操作の必要性を通知するようにしてもよい。
この遠隔操作画面では、図6に示すように、たとえば、ロボットカメラ画像、ロボット情報および操作パネルが表示される。
ロボットカメラ画像には、ロボット12から受信した眼カメラ48の撮影画像が表示される。これによって、オペレータは、ロボット12の眼カメラ48が捕らえている画像、たとえば対話している人間をリアルタイムで見ることができる。
ロボット情報には、ロボット12自体の情報、当該ロボット12の状況および対話相手の情報などが表示される。具体的には、当該ロボット12の配置された場所(施設、会場、会社など)、名前(もしくは識別情報)、配置された場所の地図および対話している人間の情報が表示される。地図には、ロボット12および対話相手を示すアイコンが各存在位置に表示される。これによって、ロボット12が設置場所のどこに存在しているのか、対話相手がロボット12に対してどこに存在しているのかなどを、オペレータは容易に把握することができる。なお、操作端末18は、地図情報を予め記憶しておいてもよいし、中央制御装置16からロボットに関する情報とともに受信するようにしてもよい。また、ロボット12および対話相手の位置は、たとえばロボット12から一定時間ごとに操作端末18に送信される。ロボット12は初期の配置位置および向きを記憶しているので、自分の現在の位置および向きを常に把握している。また、ロボット12は、超音波距離センサ32の出力情報と自分の位置などから対話相手のおよその位置を推定できる。また、地図には、その場所に存在する対話相手以外の人間を示すアイコンも表示されてよい。この場合には、オペレータはその場所におけるロボット12の状況をさらに詳細に知ることができる。
なお、ロボット12の配置場所における人間の位置情報は、周囲に設置された天井カメラ、無線タグ読取装置などのような環境のセンサを用いて、当該環境のセンサと接続された他のコンピュータで検出してよく、当該他のコンピュータからロボット12に与え、ロボット12から操作端末18に送信されてよい。または、当該位置情報は上記他のコンピュータから中央制御装置16を経由して操作端末18に送信されてもよい。なお、環境のセンサによってロボット12の位置なども検出可能であるので、ロボット12は、自分の位置および向きなどの情報も、人間の位置情報などとともに上記他のコンピュータから取得してもよい。
また、対話している人間の情報としては、名前、所属(たとえば、受付の人間や来客)、来訪回数、前回の来訪日、今回の来訪後の経過時間およびロボット12が当該相手に既に行ったコミュニケーション行動の履歴などが表示される。これによって、オペレータは、ロボット12の対話相手の情報を知ることができる。対話相手の情報は、中央制御装置16から操作端末18に送信される。なお、これらオペレータに提示される情報は一例であり、ロボット情報には適宜適切な情報が表示される。このようなロボット情報によって、オペレータは、ロボット12および対話相手の情報ならびに両者の置かれている状況などを容易に把握することができる。
また、相手が話している場合には、ロボット12から音声情報が送信されて、操作端末18のスピーカから当該音声が出力される。したがって、オペレータは、さらに対話相手の言葉を聞くことによって、現在の状況をより容易に把握することができる。
このような遠隔操作画面が、ロボット12の遠隔操作依頼を受けた操作端末18の表示装置に表示される。これによって、オペレータは、ロボット12の撮影画像、当該ロボット12の置かれている状況、対話相手の情報などを見たり、当該ロボット12の取得音声を聞いたりして、ロボット12の現在の状況を容易にかつ速やかに把握することができる。したがって、オペレータは、遠隔操作画面でロボット12の状況を確認しながら遠隔操作の必要性を容易に判断することができ、遠隔操作の必要があると判断したときには操作パネルによってロボット12の動作の遠隔操作を行うことができる。
操作パネルでは、オペレータが入力装置を操作することにより、ロボット12の動作を制御する操作コマンドが入力される。たとえば、図6に示すように、操作パネルには、移動を指示するためのボタン、コミュニケーション行動を指示するためのボタンおよび遠隔操作の終了を指示するためのボタンなどが設けられる。具体的には、「前進」ボタンは、ロボット12を前進させるためのボタンである。オペレータが「前進」ボタンを選択すると、ロボット12は、たとえば一定距離だけ前進する。同様に、「後退」ボタンはロボット12を後退させ、「右」ボタンはロボット12を右旋回させ、「左」ボタンはロボット12を左旋回させる。また、「お辞儀」ボタンは、ロボット12にお辞儀というコミュニケーション行動を実行させるためのボタンである。オペレータが「お辞儀」ボタンを選択すると、ロボット12は、首関節62を制御して頭部64を下に向け、すなわち、お辞儀をする。また、「右指差し」のボタンは、ロボット12に右指差しというコミュニケーション行動を実行させるためのボタンである。オペレータが「右指差し」のボタンを選択すると、ロボット12は、右肩関節50Rおよび右肘関節54Rを制御して腕を前方に上げる。同様にして、操作パネルに表示されたボタンをオペレータが選択ことにより、ロボット12に、うなずき、左指差しなどの身振りや発話を含む所定のコミュニケーション行動を実行させることができる。また、「終了」ボタンは、遠隔操作を終了させるためのボタンである。オペレータが「終了」ボタンを選択すると、ロボット12は遠隔操作対応モードから自律制御モードに移行する。
操作端末18は、入力データとボタン配置データとに基づいて操作パネルでのボタン選択を検出すると、選択されたボタンに対応する操作コマンドを特定し、当該操作コマンド情報をネットワーク100を介してロボット12に送信する。ロボット12は、操作端末18から操作コマンド情報を受信すると、当該操作コマンド情報に基づいて自身の動作を制御する。具体的には、ロボット12のCPU72は、操作コマンド情報に対応するコミュニケーション行動のプログラムに従って処理を実行する。これによって、ロボット12は所定の身振りを提示し、あるいは所定の音声を出力する。このように、オペレータが必要に応じて遠隔操作することによって、ロボット12の自律制御だけでは対応困難な状況や事態に対して、適切に対処することができる。
具体的には、中央制御装置16のCPUは、図7および図8に示すフローチャートに従って全体処理を実施する。また、ロボット12のCPU72は、図9に示すフローチャートに従って遠隔操作対応処理を行い、操作端末18のCPUは、図10に示すフローチャートに従ってロボット12の遠隔操作処理を行う。
図7を参照して、中央制御装置16のCPUは、全体処理を開始すると、ステップS1で複数の操作端末18(1〜M)の状態を取得し、テーブルを更新する。具体的には、各操作端末18(1〜M)から、その位置、オペレータの情報および現在の使用状況などを含む情報を取得し、図5に示すようなオペレータ端末情報テーブルを更新する。
次のステップS3では、複数のロボット12(1〜N)の状態を取得し、テーブルを更新する。具体的には、各ロボット12(1〜N)から、その位置、現在の作動状態および対話相手の情報などを含む情報を取得し、図4に示すようなロボット情報テーブルを更新する。
続いて、ステップS5では、ロボットiからの呼び出しがあるか否か、すなわち、いずれかのロボット12からオペレータ呼出要求を受信したか否かを判断する。ここで「i」は、N台のロボット12のうち1つを指定するための変数である。ステップS5で、“NO”であれば、すなわちロボット12からの呼び出しが無ければステップS19に進み、ステップS19で全体の処理を終了するか否かの確認を行う。全体処理を終了する指示は、操作端末18から全体処理を終了する指示を送信するようにしてもよいし、中央制御装置16に全体処理終了用のボタンを設けておき、これを操作するようにしてもよい。なお、この全体処理を終了する指示は、前述した遠隔操作を終了する指示とは違うものである。また、ロボット12ごとに処理を終了させることも可能である。ステップS19で“YES”であれば、この全体の処理を終了する。また、ステップS19で“NO”であれば、処理はステップS1に戻る。このように、中央制御装置16では、オペレータ操作端末テーブルの更新、ロボット情報テーブルの更新および呼出要求の確認などが一定時間ごとに繰り返し実行される。そして、ロボット12から呼び出しがあった場合には、当該呼び出しに対応する処理をステップS7〜S15で実行する。
具体的には、ステップS5で“YES”であれば、すなわちロボットiからの呼び出しがあれば、ステップS7に進み、操作端末18の選択を行う。この処理では、操作端末18を選択するための条件の判定が行われ、当該条件が満足される場合には、利用可能な操作端末18が選択される。この操作端末選択処理(図8参照)の詳細については後述する。
ステップS7で操作端末18の選択が行われると、次のステップS9では、利用できる操作端末jが存在するか否かが判断される。ここで「j」は、M台の操作端末18のうち1つを指定するための変数である。ステップS9で“NO”の場合、すなわち、オペレータを呼び出したロボットiを操作するのに適切な操作端末jが存在しなかった場合には、ステップS15に進む。
ステップS15では、ロボットiに「エラー」を送信する。つまり、ロボットiを操作する操作端末j(オペレータ)が存在しないことをロボットiに伝える。ステップS15でロボットiに「エラー」を送信すると、処理は上述のステップS19に進む。
一方、ステップS9で“YES”の場合、すなわち、オペレータを呼び出したロボットiを操作するのに適切な操作端末j(オペレータ)が存在した場合には、遠隔操作を開始させるための情報をロボットiおよび操作端末jの少なくとも一方に送信し、両者がネットワーク100を介して通信を行えるようにする。
ステップS11では、ロボットiに操作端末jの紹介を行う。つまり、ロボットiに対して、操作端末jの識別情報(IPアドレス)を送信する。
続くステップS13では、操作端末jにロボットiの遠隔操作の依頼を行うとともに、上述したロボット情報を送信する。具体的には、ロボット情報テーブルから必要な情報を読み出して、ロボットiのアドレスを操作端末jに送信し、さらに、当該ロボットiの位置および対話相手の情報などを送信する。なお、ステップS13では、さらに、オペレータ端末情報テーブルの操作端末jの状態を示すデータが、ロボットiの遠隔操作対応中を示すデータ(「controlling−Ri」)に更新されてよい。ステップS13が終了すると、処理は上述のステップS19に進む。
図8は、図7に示したステップS7の操作端末選択処理を示すフロー図である。図8を参照して、まず、ステップS31では、制約条件を設定する。つまり、この実施例のように制約条件がロボットiの状況に応じて設定される場合には、当該ロボットiのロボット情報に基づいて制約条件を設定する。1つまたは複数の制約条件が設定されてよい。たとえば、制約条件として、対話相手の使用言語とオペレータの使用可能言語が同一であることが採用される場合には、ロボット情報テーブルから当該ロボットiの対話相手の使用言語を取得して、当該言語をオペレータの言語条件として設定する。
次に、ステップS33では、変数の初期化を行う。つまり、M台の操作端末18のうち1つを指定するための変数jおよびY個の希望条件のうち1つを指定するための変数xに初期値1を設定する。
ステップS35では、操作端末jの状態が「idle」状態か否かを判断する。すなわち、図7のステップS1で更新されたオペレータ端末情報テーブルから、操作端末jの状態を読み出し、操作端末jがすぐに利用できる状態か否かを判断する。ステップS35で“NO”の場合、すなわち、操作端末jが現在他のロボットを操作中もしくは利用不可の状態であった場合には、処理はステップS37に進む。
ステップS37では、変数jの値が操作端末18の総数Mの値と等しくなったか否か、すなわち、全ての操作端末jについて状態(「idle」か否か)を確認したか否かを判断する。ステップS37で“NO”の場合には、ステップS39で変数jをインクリメントして、処理はステップS35に戻り、次の操作端末jについての利用可能性の判断を行う。また、ステップS37で“YES”の場合には処理はステップS55に進む。
一方、ステップS35で“YES”の場合、すなわち、操作端末jがすぐに利用できる状態にあるときは、ステップS41で
操作端末jが要求された制約条件を全て満たすか否かを判断する。上述したように、制約条件は、操作端末jが選択されるために必ず満たさなければならない条件であり、上述のステップS31で設定される。たとえば、制約条件が言語条件である場合には、オペレータ端末情報テーブルから当該操作端末jに対応するオペレータの言語情報を読み出して、当該制約条件の言語が含まれるか否かが判定される。
ステップS41で、“NO”と判断した場合、すなわち、要求された制約条件の中に1つでも満たされない制約条件があった場合には、処理は上述のステップS37に進む。
一方、ステップS41で“YES”と判断した場合、すなわち、全ての制約条件が満たされた場合には、処理はステップS43に進む。なお、制約条件が存在しない場合は、ステップS41では全て“YES”と判断される。
ステップS43では、操作端末jが希望条件xを満たすか否かを判断する。上述したように、希望条件は、オペレータを呼び出したロボットiを操作するために操作端末jが満たすことが望ましい条件であり、この実施例では予め設定される。たとえば、希望条件として位置が近いことが設定される場合には、ロボット情報テーブルとオペレータ端末情報テーブルに基づいて、ロボットiの位置と操作端末jの位置とが近いか否かを判定する。また、希望条件としてオペレータの操作歴が採用される場合には、オペレータ端末情報テーブルに基づいて操作端末jの操作歴が所定値以上であるか否かを判定する。
ステップS43で“YES”と判断された場合、すなわち、希望条件xが満足される場合には、ステップS45で、操作端末jが優先的に選択されるための優先度を表す変数pjを1加算し、ステップS47に進む。このように、希望条件が満たされるごとに当該操作端末jの優先度pjを増加するようにしているので、この実施例では、満足した希望条件の数が多いほど優先度pjの値が大きくなる。一方、ステップS43で“NO”である場合、すなわち、希望条件xが満たされない場合には、処理はそのままステップS47に進む。
ステップS47では、変数xの値と当該操作端末jに要求された希望条件の総数Yの値とが等しいか否か、すなわち、要求された全ての希望条件について判定を行ったか否かを判断する。ステップS47で“NO”の場合には、ステップS49で変数xをインクリメントして、ステップS43に戻り、次の希望条件について判定を行う。一方、ステップS47で“YES”の場合は、ステップS51に進む。なお、希望条件が存在しない場合は、ステップS43では全て“NO”と判断され、続くステップS47では全て“YES”と判断される。
ステップS51では、変数jの値が操作端末18の総数Mの値と等しくなったか否か、すなわち、全ての操作端末jについての判定を終えたか否かを判断する。ステップS51で“NO”の場合には、ステップS53で、変数jをインクリメントしてステップS35に戻り、次の操作端末jについて判断を行う。一方、ステップS51で“YES”の場合には、処理はステップS55に進む。
ステップS55では、利用可能な操作端末18のうち、優先度pjの最も高い操作端末jを選択する。つまり、この実施例では、「idle」状態でかつ制約条件を全て満たした操作端末18のうち優先度pjが最大の操作端末jの識別情報を獲得する。なお、複数の操作端末18の優先度pjの値が同一である場合には、その中から1つをたとえばランダムに選択する。また、「idle」状態の操作端末18が無い場合、または全ての制約条件を満足する操作端末18が無い場合には、利用可能な操作端末jが存在しないことを示すデータを記憶する。これによって、オペレータを呼び出したロボットiを操作するのに最も適切な操作端末jを決定し、この操作端末選択処理をリターンする。
このように、中央制御装置16は、複数のロボット12および複数の操作端末18の情報を取得して記憶しているので、ロボット12からの呼び出しがあったときには、利用可能な操作端末18を容易に選択することができるし、さらに各種条件判定によって、呼び出したロボット12(要求ロボット)に最も適切な操作端末18を選択することができる。また、ロボット12からの呼出要求があった場合にのみ操作端末18(オペレータ)を呼び出して遠隔操作を行わせるようにしたので、ロボット遠隔操作システム10はロボット12の数よりも少数の操作端末18を備えるだけで足りる。
図9には、ロボット12のCPU72の遠隔操作対応処理の動作の一例が示される。ロボット12のCPU72は、この遠隔操作対応処理を他の処理と並列的にかつ一定時間ごとに実行する。
図9を参照して、ステップS71では、センサ情報の取得を行う。すなわち、オペレータ呼出条件の判定に必要なセンサ情報、たとえば、超音波距離センサ32、マイク46、眼カメラ48、タッチセンサ58および無線タグ読取装置98のセンサ情報を取得する。
次のステップS73では、オペレータ呼出条件が満たされたか否かを判断する。すなわち、ステップS71で取得したセンサ情報などに基づいて、上述したオペレータ呼出条件の判定を行う。ステップS73で“NO”の場合、すなわち、オペレータ呼出条件を満たさないと判断した場合には、この遠隔操作対応処理を終了する。
一方、ステップS73で“YES”の場合、すなわち、オペレータ呼出条件を満たすと判断した場合には、自律制御だけでは解消することが難しい問題が発生したり、細やかな対応が求められる場面になったりするなど、オペレータによる遠隔操作が必要な状況になったと判断して、ステップS75では、中央制御装置16に対して、オペレータ呼出要求を送信し、当該要求に対する応答の受信を待つ。
続くステップS77では、中央制御装置16から操作端末18の紹介があったか否かが判断される。たとえば、操作端末18のアドレスを含む呼出応答を受信したか、またはエラーを受信したかが判定される。
ステップS77で“NO”の場合、すなわち、中央制御装置16からエラーを受信した場合には、ステップS79でエラー処理を実行する。利用可能な操作端末18(オペレータ)が存在せず、オペレータの遠隔操作による制御が望めないので、ロボット12は自律的にエラー対応処理を行う。たとえば、満足された呼出条件に応じて異なる処理を実行してよい。自律制御では対応不可能なトラブルが発生したか否かを判定する呼出条件が満足された場合には、たとえば「手空きのオペレータがおりませんので、しばらくお待ち下さい」、「申し訳ございません。対応できるオペレータが存在しません」といった発話を含むコミュニケーション行動を実行してよい。これによって、対話相手にトラブルに対応不可能な状態であることを知らせることができ、また対話相手の違った反応を引き出して自律制御で対応可能な状態に変化することが期待される。また、たとえばVIPが来たり多くの人に取り囲まれたりしたときのように、細やかな対応が求められる場面になったか否かを判定する呼出条件が満足された場合には、たとえばエラー対応としての発話や身振りを特に提示せずに、自律制御を継続するようにしてもよい。また、たとえばエラーを受信してから一定時間経過後に呼出要求を再送信するようにしてもよい。ステップS79を終了するとこの遠隔操作対応処理を終了する。
なお、ステップS77で呼出要求に対する応答の受信待ちがタイムアウトになったと判定されるときには、たとえば、通信困難であることを対話相手に通知したり、呼び出しを再度試みたりしてから、この遠隔操作対応処理を終了する。
一方、ステップS77で“YES”の場合、すなわち、中央制御装置16から操作端末18を紹介された場合は、ステップS81に進む。なお、上述のように、中央制御装置16からの紹介は、中央制御装置16が操作端末18の識別情報(IPアドレス)を送信することにより行われる。したがって、ロボット12は、以降、操作端末18との間で情報の送受信を中央制御装置16を介さずに行うことができる。
操作端末18の紹介があったときには、遠隔操作対応モードに移行して、続くステップS81からS87の処理を一定時間ごとに繰り返し実行する。この遠隔操作対応モードでは、ロボット12の動作は基本的には自律制御され、遠隔操作があったときにはその操作コマンドに従った動作を実行する。
ステップS81では、紹介された操作端末18に対してカメラ画像および音声を送信する。すなわち、眼カメラ48が撮影したカメラ画像情報およびマイク46が取得した音声情報(対話相手の発話音声)が、操作端末18に対して送信される。
ステップS83では、操作端末18から、自身の動作を制御する操作コマンドを受信したか否かを判断する。ステップS83で“NO”の場合、すなわち、操作コマンドを受信しなかった場合には、ステップS81に戻る。
一方、ステップS83で“YES”の場合、すなわち、操作端末18からの操作コマンドを受信した場合には、ステップS85で、遠隔操作終了要求があったか否かを判定する。つまり、ステップS83で受信した操作コマンドが遠隔操作終了コマンドであったか否かを判断する。
ステップS85で“NO”の場合、すなわち、コミュニケーション行動を指示する操作コマンドを受信した場合には、ステップS87で、当該操作コマンドに応じた動作が行われる。これによって、上述したように、ロボット12の動作が遠隔操作に基づいて制御される。たとえば、お辞儀や指差しなどの身体動作および発話を含むコミュニケーション行動、あるいは、前進や旋回などの移動を実行する。なお、操作コマンドを受信したときに自律制御によってコミュニケーション行動などを実行中であった場合には、当該実行中の行動が終了するのを待ってから操作コマンドに対応する動作を実行してもよいし、当該実行中の行動を中止してから操作コマンドに対応する動作を実行してもよい。ステップS87を終了すると処理はステップS81へ戻る。
一方、ステップS85で“YES”の場合、すなわち、オペレータが操作端末18で遠隔操作による対応の終了を選択した場合には、自律制御のみでは対応することの難しかった状況が変化したと判断して、この遠隔操作対応処理を終了する。これによって、ロボット12の動作モードは遠隔操作対応モードから自律制御モードに戻る。
図10には、操作端末18のCPUの遠隔操作処理の動作の一例が示される。図10を参照して、ステップS101では、中央制御装置16から遠隔操作依頼があるか否かが判断される。具体的には、ロボット12のアドレスを含む遠隔操作対応の依頼を中央制御装置16から受信したか否かが判定される。このステップS101の判定は一定時間ごとに繰り返し実行される。
ステップS101で“YES”の場合、すなわち、中央制御装置16からロボット12の遠隔操作依頼を受信したときには、
ステップS103で、表示装置に遠隔操作画面が表示される。すなわち、上述した図6に示すような、ロボットカメラ画像、ロボット情報および操作パネルを含む遠隔操作画面が表示される。なお、この時点では、当該操作端末を呼び出したロボット12のカメラ画像および当該ロボット12に関する情報は取得されていないので、ロボットカメラ画像およびロボット情報の内容の表示は無い。ステップS103を終了すると、続くステップS105からS113の処理が一定時間ごとに繰り返し実行される。
ステップS105では、ロボット情報の受信および更新が行われる。すなわち、中央制御装置16またはロボット12からロボット情報を受信して、遠隔操作画面のロボット情報の表示を更新する。なお、ロボット情報を最初に表示する際には、当該ロボット12の位置、名前、対話相手の情報などは中央制御装置16から取得される。それ以降の画面を表示する際には、たとえば、地図表示のためのロボット12および相手の位置情報は当該ロボット12から取得され、他の人間の位置情報は中央制御装置16から取得される。
また、ステップS107では、カメラ画像および音声の受信および更新が行われる。すなわち、ロボット12から画像データを受信して、遠隔操作画面のロボットカメラ画像の表示を更新する。また、ロボット12から音声データを受信して、スピーカから当該音声を出力する。
続いて、ステップS109では、操作コマンドの入力があったか否かを判断する。たとえば、入力装置からの入力データと操作パネルのボタン配置データとに基づいて、オペレータによって操作コマンドボタンが選択されたか否かが判断される。ステップS109で“NO”の場合、すなわち、操作コマンドの入力が無い場合には、ステップS105に戻る。
一方、ステップS109で“YES”の場合、すなわち、操作コマンドの入力があった場合には、ステップS111で、選択された操作コマンドを特定し、当該操作コマンドをロボット12に送信する。
そして、ステップS113で、遠隔操作終了要求があったか否かを判定する。つまり、ステップS109で入力された操作コマンドが遠隔操作の終了を指示するコマンドであったか否かを判断する。ステップS113で“NO”の場合、すなわち、終了コマンドが入力されていない場合には、ステップS105に戻る。一方、ステップS113で“YES”の場合、すなわち、オペレータによって終了が指示された場合には、この遠隔操作処理を終了する。
このように、遠隔操作画面には、ロボットカメラ画像やロボット情報などがリアルタイムで表示されるので、オペレータは、ロボット12の状況を容易に把握することができ、必要に応じてロボット12を遠隔操作する操作コマンドを適切に入力することができる。
この実施例によれば、ロボット12からの呼出要求があったときに、操作端末18(オペレータ)を呼び出して、当該ロボット12の操作権を当該操作端末18に与えて、遠隔操作を行わせるようにしたので、ロボット遠隔操作システム10はロボット12の数よりも少数の操作端末18を備えるだけで足りる。したがって、ロボット12の台数よりも少数の操作端末18によって遠隔操作を行うことができるので、効率のよいロボット遠隔操作システム10を実現することができる。また、中央制御装置16によって複数のロボット12および複数の操作端末18から情報を取得して記憶するようにしたので、ロボット12からの呼び出しがあった場合には、利用可能な操作端末18を容易に選択することができる。さらに、制約条件や希望条件を判定するようにしたので、自律制御のみでは対応が困難な事態になったロボット12に最適な操作端末18を選択することができ、したがって、より効率的に遠隔操作を行わせることが可能である。
なお、上述の実施例では、ロボット12は予め設定したコミュニケーション行動を行うようにしたが、他の実施例では、オペレータが、遠隔操作画面でロボット12の各モータ26,40,84〜92を個別に操作し、ロボット12の動作を制御するようにしてもよい。
また、上述の各実施例では、遠隔操作画面上に操作パネルを表示してマウスクリック方式またはタッチパネル等でロボット12の動作を指示するようにしたが、他の実施例では、操作端末18に、操作スイッチまたはジョイスティックなどの操作部を表示装置とは別に設けて、当該操作部の操作でロボット12の動作を指示するようにしてもよい。
また、上述の各実施例では、操作端末18の遠隔操作画面のロボットカメラ画像には、ロボット12の眼カメラ48が撮影した画像を表示するようにしたが、これに限定されない。たとえば、ロボット12の全方位カメラ42が撮影した画像を表示するようにすれば、オペレータは、ロボット12の全周囲の様子を確認し、より詳細にロボット12の状況を把握することができるので、適切にロボット12を遠隔操作することができる。また、ロボット12の周囲に設けた天井カメラからの画像を表示するようにしてもよい。さらにまた、カメラ画像の表示は1つに限定されず、複数のカメラ画像を表示するようにしてもよい。
また、上述の各実施例では、遠隔操作対応モードにおいて、ロボット12が発話する際には、予めメモリ76に記憶した音声を自律制御または受信した操作コマンドに基づいて出力するようにした。しかし、他の実施例では、操作端末18にオペレータの声(音声)を入力するマイクを設け、オペレータの入力音声をロボット12に送信してスピーカ66から出力することにより、オペレータがロボット12の対話相手と直接会話できるようにしてもよい。
また、上述の各実施例では、中央制御装置16が遠隔操作の開始を指示する際には、ステップS11でロボットiに操作端末jを紹介するとともに、ステップS13で操作端末jにロボットiの遠隔操作を依頼するようにいた。しかし、他の実施例では、中央制御装置16がロボットiに利用可能な操作端末jの情報(アドレスまたは識別情報等)を送信し、これに応じてロボットiが操作端末jに遠隔操作を依頼するようにしてもよい。これによって、ロボットiは、位置情報、対話相手の情報、カメラ画像情報もしくは音声情報など必要な情報を操作端末jに送信することができる。あるいは、他の実施例では、中央制御装置16が操作端末jにロボットiの情報(アドレスまたは識別情報等)を送信し、これに応じて操作端末jがロボットiに、位置情報、対話相手情報、カメラ画像情報もしくは音声情報などの必要な情報の送信を要求するようにしてもよい。
また、上述の各実施例では、中央制御装置16がロボット12に操作端末18(オペレータ)を紹介した後、ロボット12と操作端末18とがネットワーク100を介して情報の送受信を行うようにした。しかし、他の実施例では、ロボット12と操作端末18との間の情報の送受信は、中央制御装置16を介して行うようにしてもよい。
また、上述の各実施例では、遠隔操作対応モードにおいて、ロボット12の動作は基本的に自律制御され、操作コマンドを受信したときに、当該操作コマンドに基づいて制御されるようにした。つまり、オペレータによる完全な遠隔操作が行われるのではなく、オペレータが必要と判断した場合にロボット12が遠隔操作に基づいて動作を行うようにした。しかし、他の実施例では、ロボット12がオペレータ呼出要求を送信して中央制御装置16から操作端末18の紹介を受けたときに、当該ロボット12を自律制御モードから完全な遠隔制御モードに移行させるようにしてもよい。すなわち、オペレータによる遠隔操作にロボット12の動作制御を完全に委ねさせるようにしてもよい。