図1を参照して、この実施例のロボット制御システム(以下、単に「システム」とも言う。)10は、ロボット12および操作用コンピュータ14を含む。このシステム10はロボット12を操作用コンピュータ14から遠隔操作するためのものである。ロボット12と操作用コンピュータ14とは、無線LAN、インターネット等のようなネットワーク16を介して接続される。
ロボット12は、この実施例ではコミュニケーションロボットである。コミュニケーションロボット12は、主として人間のようなコミュニケーションの対象と相互作用することの可能なロボットであり、身振り手振りのような身体動作および発話の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。このロボット12は、一例として、博物館、科学館、イベント会場、会社、商店街、地下街等の所定の場所に配置される案内ロボットや受付ロボット等であってよい。ロボット12は、基本的には自律制御によって人間と相互作用したり所定の役割を果したりすることができるが、必要に応じてオペレータによって操作用コンピュータ14から遠隔操作される。
操作用コンピュータ14には、後述するように、ロボット12を遠隔操作するオペレータのために遠隔操作画面が表示される。この実施例の画面は、ロボット12の動作を指示するための操作画面(図6参照)とともに、当該ロボット12の配置される環境の情報を表示するセンサ情報画面(図5参照)を含む。このセンサ情報画面によって、ロボット12の周辺環境の情報がオペレータに提供される。オペレータはセンサ情報画面で環境情報を確認しつつ操作画面で操作コマンドを入力してロボット12を遠隔操作する。
そのため、システム10は、ロボット12の配置される上述のような所定の場所に設けられて当該場所の環境情報を検出するセンサ(環境センサ)を含む。この実施例では、このような環境に埋め込まれるセンサとして、たとえば、複数のカメラ18、複数の無線タグリーダ20、複数の距離センサ22、および複数の騒音計24が設けられる。各環境センサ18、20、22、24には、当該センサで検出された情報を取得するコンピュータ18a、20a、22a、24aが接続される。各コンピュータ18a、20a、22a、24aは、通信装置を介して有線または無線でネットワーク16に接続される。また、各コンピュータ18a、20a、22a、24aは、各センサ18、20、22、24での検出情報を、たとえば一定時間ごとに取得してネットワーク16を介して操作用コンピュータ14に送信する。
なお、他の実施例では、各環境センサ18、20、22、24の接続された各コンピュータ18a、20a、22a、24aは、ネットワーク16を介して他のコンピュータに環境センサ情報を送信し、当該他のコンピュータが環境センサ情報を操作用コンピュータ14に与えるようにしてもよい。また、ロボット12のセンサ情報も、同様に上記他のコンピュータを経由して操作用コンピュータ14に与えられてよい。また、操作用コンピュータ14の操作情報も、この他のコンピュータを経由してロボット12に与えられてもよい。
図2には、ロボット12が配置場所で活動する場面の一例が示される。図2では、ロボット12は展示物や案内板等の特定の物体26の説明を人間に対して行っている。なお、この図2においては、各環境センサ18、20、22、24の各コンピュータ18a、20a、22a、24aの図示は省略されている。
この図2も参照して、複数のカメラ18は、ロボット12の配置された空間内において分散して配置される。つまり、複数のカメラ18のそれぞれは、ロボット12の配置された環境において所定領域ないし範囲を撮影するように、天井、壁や台等の所定位置で所定方向へ向けて設置される。各環境カメラ18で撮影された所定領域の映像ないし画像は、各コンピュータ18aから操作用コンピュータ14に与えられる。操作用コンピュータ14は、各環境カメラ18の位置情報(座標、設置された場所ないし領域等)を、その識別情報に対応付けて記憶している。なお、ロボット12の配置される場所が小さかったり、ロボット12の活動範囲が小かったりする場合等には、環境のカメラ18は1つであってもよい。
複数の無線タグリーダ20は、ロボット12の配置された空間内において分散して配置される。つまり、複数の無線タグリーダ20のそれぞれは、ロボット12の配置された環境において無線タグ(図示しない)の位置推定を行うために、天井、壁、床や台等の所定位置に設置される。この実施例では、無線タグを少なくとも3つの無線タグリーダ20で検出可能なように、各無線タグリーダ20の配置が決められる。無線タグリーダ20は、たとえば受信感度を段階的に制御することが可能であり、このため、無線タグリーダ20から無線タグまでのおおまかな距離を検出することが可能である。各環境無線タグリーダ20で検出された無線タグの識別情報および距離情報は、各コンピュータ20aから操作用コンピュータ14に与えられる。操作用コンピュータ14は、各無線タグリーダ20の位置情報(座標、設置された場所ないし領域等)を、その識別情報に対応付けて記憶している。無線タグが少なくとも3つの無線タグリーダ20によって同時に検出されれば、操作用コンピュータ14は、これら無線タグリーダ20の位置情報と検出距離情報とに基づいて当該無線タグの位置を推定することができる。この実施例では、無線タグはロボット12に装着され、したがって、ロボット12の現在位置が推定および把握される。なお、無線タグを人間に装着すれば、当該人間の位置も推定できる。
なお、ロボット12の位置の検出方法は、上述の方法に限定されず適宜変更され得る。他の実施例では、たとえば、環境内に複数の赤外線カメラを設置するとともにロボット12に赤外線LEDを取り付けて、操作用コンピュータ14で赤外線カメラ画像の画像処理によってロボット12の位置を検出するようにしてもよい。また、ロボット12の配置される空間の床に、多数の検出素子(感圧センサ)を含む床センサを設けて、操作用コンピュータ14で床センサの検出圧力信号に基づいてロボット12の位置を検出するようにしてもよい。
複数の距離センサ22のそれぞれは、ロボット12の配置された環境において、たとえば展示物や案内板等の特定の物体26の前に人間が存在するか否かを検出するために、物体26の前等その近傍の所定の位置に設けられる。距離センサ22は、超音波距離センサまたは赤外線距離センサ等である。各環境距離センサ22で測定された距離情報は、各コンピュータ22aから操作用コンピュータ14に与えられる。操作用コンピュータ14は、各距離センサ22の位置情報(座標、設置された場所、領域ないし物体26等)を、その識別情報に対応付けて記憶している。なお、特定の物体26が環境に1つしか設けられない場合等には、環境距離センサ22は1つであってよい。あるいは、通路などの特定の領域に複数の距離センサ22を配置して、その領域にどれぐらいの人間が存在するかを検出するようにしてもよい。
複数の騒音計24は、ロボット12の配置された空間内において分散して配置される。つまり、複数の騒音計24のそれぞれは、ロボット12の配置された環境において、所定の領域における騒音レベルを検出するために、天井、壁、台等の所定の位置に設けられる。各環境騒音計24で検出された騒音レベル情報は各コンピュータ24aから操作用コンピュータ14に与えられる。操作用コンピュータ14は、各騒音計24の位置情報(座標、設置された場所ないし領域等)を、その識別情報に対応付けて記憶している。なお、上述の環境カメラ18の場合と同様の理由で、環境騒音計24は1つであってもよい。
図3にはロボット12を正面から見た外観の一例が示され、図4にはロボット12の電気的な構成の一例が示される。図3を参照して、ロボット12は台車28を含み、この台車28の下面には、このロボット12を自律移動させる車輪30が設けられる。この車輪30は、車輪モータ(図4において参照番号「32」で示す。)によって駆動され、台車28すなわちロボット12を前後左右任意の方向に動かすことができる。なお、図3では示さないが、この台車28の前面には、衝突センサ(図4において参照番号「34」で示す。)が取り付けられ、この衝突センサ34は、台車28への人や他の障害物との接触を検知する。ロボット12の移動中に接触を検知すると、直ちに車輪30の駆動を停止することができる。
台車28の上には、多角形柱のセンサ取付パネル36が設けられ、このセンサ取付パネル36の各面には、超音波距離センサ38が取り付けられる。この超音波距離センサ38は、取付パネル36すなわちロボット12の周囲の主として人との間の距離を計測するためのものである。
台車28の上には、さらに、ロボット12の胴体が、その下部が上述の取付パネル36に囲まれて、直立するように取り付けられる。この胴体は下部胴体40と上部胴体42とから構成され、これら下部胴体40および上部胴体42は、連結部44によって連結される。連結部44には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体42の高さすなわちロボット12の高さを変化させることができる。昇降機構は、腰モータ(図4において参照番号「46」で示す。)によって駆動される。
上部胴体42には、1つの全方位カメラ48が設けられる。全方位カメラ48はたとえば背面側上端部のほぼ中央から延びる支柱50上に設置される。全方位カメラ48は、ロボット12の周囲を撮影するものであり、後述する眼カメラ52とは区別される。この全方位カメラ48としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。また、上部胴体42の正面側のほぼ中央には、1つのマイク54が設けられる。マイク54は、周囲の音、とりわけコミュニケーション対象である人間の声を取り込む。なお、これら全方位カメラ48およびマイク54の設置位置は上部胴体40に限られず適宜変更され得る。
上部胴体42の両肩には、それぞれ、肩関節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の変位を制御するX,Y,Z,W軸およびA,B,C,D軸では、「0度」がホームポジションであり、このホームポジションでは、上腕58Rおよび58Lならびに前腕62Rおよび62Lは下方向に向けられる。
また、図3では示さないが、上部胴体42の肩関節56Rおよび56Lを含む肩の部分や上述の上腕58Rおよび58Lならびに前腕62Rおよび62Lを含む腕の部分には、それぞれ、タッチセンサ(図4において参照番号「64」で包括的に示す。)が設けられていて、これらのタッチセンサ64は、人がロボット12のこれらの部位に接触したかどうかを検知する。
前腕62Rおよび62Lのそれぞれの先端には、手に相当する球体66Rおよび66Lがそれぞれ固定的に取り付けられる。なお、この球体66Rおよび66Lに代えて、この実施例のロボット12と異なり指の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
上部胴体42の中央上方には、首関節68を介して、頭部70が取り付けられる。この首関節68は、3軸の自由度を有し、S軸,T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上に向かう軸であり、T軸およびU軸は、それぞれ、このS軸に対して異なる方向で直交する軸である。頭部70には、人の口に相当する位置に、スピーカ72が設けられる。なお、スピーカ72は、ロボット12が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられてよい。また、スピーカ72は、ロボット12の他の部位たとえば胴体に設けられてもよい。
また、頭部70には、目に相当する位置に眼球部74Rおよび74Lが設けられる。眼球部74Rおよび74Lは、それぞれ眼カメラ52Rおよび52Lを含む。なお、左右の眼球部74Rおよび74Lをまとめて参照符号「74」で示し、左右の眼カメラ52Rおよび52Lをまとめて参照符号「52」で示すこともある。眼カメラ52は、ロボット12に接近した人の顔や他の部分ないし物体等を撮影してその映像信号を取り込む。
なお、上述の全方位カメラ48および眼カメラ52のいずれも、たとえばCCDやCMOSのように固体撮像素子を用いるカメラであってよい。
たとえば、眼カメラ52は眼球部74内に固定され、眼球部74は眼球支持部(図示せず)を介して頭部70内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部70に対して設定される軸であり、α軸は頭部70の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部70の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部70がホームポジションにあるとき、α軸はS軸に平行し、β軸はU軸に平行するように設定されている。このような頭部70において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部74ないし眼カメラ52の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
なお、眼カメラ52の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図3に示すように、眼カメラ52のカメラ軸は頭部70の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
図4を参照して、このロボット12は、全体の制御のためにマイクロコンピュータまたはCPU76を含み、このCPU76には、バス78を通して、メモリ80,モータ制御ボード82,センサ入力/出力ボード84および音声入力/出力ボード86が接続される。
メモリ80は、図示しないが、ROMやHDDおよびRAM等を含み、ROMまたはHDDには、このロボット12の動作を制御するためのプログラムおよびデータが予め格納されている。CPU76は、このプログラムに従って処理を実行する。プログラムには、たとえば、各センサによる検知情報を検出する検出プログラム、操作用コンピュータ14等の外部コンピュータと必要なデータを送受信するための通信プログラム、動作を自律制御する自律制御プログラムおよび受信した操作情報に基づいて動作を制御する遠隔制御プログラムがある。挨拶、頷き、指差し等の個々のコミュニケーション行動は、モジュール化された各行動プログラム(行動モジュール)によって実現され、メモリ80には複数の行動プログラムが各識別情報(操作コマンド)に対応付けて記憶されている。CPU76は複数のルールと現在の状況に基づいて次の行動を決定していくことでロボット12自身の動作を自律制御できる。また、メモリ80には各行動を実行する際に発生すべき音声または声の音声データ(音声合成データ)および所定の身振りを提示するための角度データ等も記憶される。また、RAMは、バッファメモリやワーキングメモリとして使用される。
モータ制御ボード82は、たとえばDSP(Digital Signal Processor)で構成され、右腕、左腕、頭および眼等の身体部位を駆動するためのモータを制御する。すなわち、モータ制御ボード82は、CPU76からの制御データを受け、右肩関節56RのX,YおよびZ軸のそれぞれの角度を制御する3つのモータと右肘関節60Rの軸Wの角度を制御する1つのモータを含む計4つのモータ(図4ではまとめて「右腕モータ」として示す。)88の回転角度を調節する。また、モータ制御ボード82は、左肩関節56LのA,BおよびC軸のそれぞれの角度を制御する3つのモータと左肘関節60LのD軸の角度を制御する1つのモータとを含む計4つのモータ(図4ではまとめて「左腕モータ」として示す。)90の回転角度を調節する。モータ制御ボード82は、また、首関節68のS,TおよびU軸のそれぞれの角度を制御する3つのモータ(図4ではまとめて「頭部モータ」として示す。)92の回転角度を調節する。モータ制御ボード82は、また、腰モータ46および車輪30を駆動する2つのモータ(図4ではまとめて「車輪モータ」として示す。)32を制御する。さらに、モータ制御ボード82は、右眼球部74Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図4ではまとめて「右眼球モータ」として示す。)94の回転角度を調節し、また、左眼球部74Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図4ではまとめて「左眼球モータ」として示す。)96の回転角度を調節する。
なお、この実施例の上述のモータは、車輪モータ32を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ32と同様に、直流モータであってよい。また、この実施例では、ロボット12の腕、頭、眼などの身体部位を駆動するアクチュエータとして電力を駆動源とするモータを用いた。しかしながら、このロボット12としては、たとえば空気圧(または負圧)、油圧、圧電素子あるいは形状記憶合金などによる他のアクチュエータによって身体部位を駆動するロボットが適用されてもよい。
センサ入力/出力ボード84も、同様に、DSPで構成され、各センサからの信号を取り込んでCPU76に与える。すなわち、超音波距離センサ38の各々からの反射時間に関するデータがこのセンサ入力/出力ボード84を通して、CPU76に入力される。また、全方位カメラ48からの映像信号が、必要に応じてこのセンサ入力/出力ボード84で所定の処理が施された後、CPU76に入力される。眼カメラ52からの映像信号も、同様にして、CPU76に与えられる。また、タッチセンサ64および衝突センサ34からの信号がセンサ入力/出力ボード84を介してCPU76に与えられる。また、関節角度センサ98からの角度情報がセンサ入力/出力ボードを介してCPU76に与えられる。関節角度センサ98は、各関節56、60、68の各軸の回転角度を検出するロータリエンコーダ、ポテンショメータ等である。
スピーカ72には音声入力/出力ボード86を介して、CPU76から音声データが与えられ、それに応じて、スピーカ72からはそのデータに従った音声または声が出力される。また、マイク54からの音声入力が、音声入力/出力ボード86を介して音声データとしてCPU76に取り込まれる。
CPU76にはさらに通信LANボード100が接続される。通信LANボード100も同様にDSPで構成され、CPU76から与えられた送信データを無線通信装置102に与えて、当該データを無線通信装置102からネットワーク16を介して操作用コンピュータ14等の外部コンピュータに送信させる。また、通信LANボード100はネットワーク16および無線通信装置102を介して操作用コンピュータ14等の外部コンピュータからデータを受信し、当該受信データをCPU76に与える。
操作用コンピュータ14は、図示は省略するがCPUを含み、CPUには、メモリ、表示装置、入力装置、スピーカおよび通信装置などが接続される。操作用コンピュータ14は、通信装置を介してネットワーク16に有線または無線で接続されている。
操作用コンピュータ14のメモリには、動作を制御するためのプログラムおよび必要なデータが記憶される。プログラムは、たとえば、ロボット12や各コンピュータ18a、20a、22a、24a等の外部コンピュータと必要なデータを送受信するための通信プログラム、環境の情報やロボット12の情報等をこの操作用コンピュータ14の表示装置に表示するための情報表示プログラム、この操作用コンピュータ14の入力装置からの入力に応じてオペレータによる操作を特定し操作情報をロボット12に送信する操作プログラム等を含む。また、各環境センサの位置情報、環境の地図情報等も記憶される。
操作用コンピュータ14の表示装置には、図5に示すようなセンサ情報画面および図6に示すような操作画面を含む遠隔操作画面が表示される。操作用コンピュータ14は、その通信装置を介して各コンピュータ18a、20a、22a、24aやロボット12からたとえば一定時間ごとにセンサ情報およびロボット12の行動状態等の必要な情報を取得して、遠隔操作画面を生成および更新する。操作用コンピュータ14の入力装置はマウス、キーボードまたはタッチパネル等であり、オペレータはこの入力装置を操作することによってロボット12を遠隔操作するための操作コマンドを操作画面で入力することができる。また、操作用コンピュータ14のスピーカからは、ロボット12のマイク54で取得した聴覚情報を必要に応じて出力するようにしてよい。
図5のセンサ情報画面には、環境センサ18、20、22、24を用いて検出した環境情報が表示される。また、この実施例では、ロボット12のセンサ情報も表示される。具体的には、環境カメラウィンドウ110、ロボット距離センサウィンドウ112、ロボットモーションウィンドウ114、騒音計ウィンドウ116、環境距離センサウィンドウ118、地図ウィンドウ120等が表示される。環境カメラウィンドウ110、騒音計ウィンドウ116および環境距離センサウィンドウ118には、各環境センサによって検出された環境センサ情報が表示され、地図ウィンドウ120には、環境センサ情報に基づいて検出された当該環境での遠隔操作にあたり注意すべき情報が表示される。
なお、センサ情報画面上に表示する情報の種類は、初期設定によって予め決められており、また、図示しない表示設定メニューでオペレータによって選択され得る。初期設定またはオペレータによって選択された情報に関する表示フラグがオンにされ、表示フラグがオンである情報がセンサ情報画面上に表示される。したがって、ロボット12の遠隔操作に必要なセンサ情報および環境情報のみを、このセンサ情報画面上に表示することができるので、オペレータにロボット12の行動制御を効率よく行わせることができる。
環境カメラウィンドウ110には、環境のカメラ18で撮影された環境の映像ないし画像が表示される。ウィンドウ110の上部タイトル欄には、環境カメラ18の名称ないし識別情報(EC1,EC2,…)が表示される。たとえば、ロボット12の現在位置に基づいて当該位置を撮影範囲に含む環境カメラ18が特定され、当該環境カメラ18に対応する表示フラグがオンにされてそのウィンドウ110が表示される。また、ロボット12の現在位置から所定距離内の環境カメラ18の表示フラグをオンにするようにしてもよい。なお、環境のカメラ18の総数が少ない場合等には、すべての環境のカメラ18の表示フラグがオンにされてもよい。また、オペレータは、図示しない表示設定メニューで、複数の環境カメラ18の中から、所望の環境カメラ18の表示を選択することができる。オペレータは、このウィンドウ110によって、ロボット12の存在する場所周辺や近辺の映像を見ることができるし、また、メニュー選択によって自分の見たい場所の映像を見ることができる。
ロボット距離センサウィンドウ112には、ロボット12の超音波距離センサ38で検出された距離情報が表示される。ロボット12では、たとえば、複数の距離センサ38がロボット12の全周囲にわたって所定の角度間隔で設けられている。したがって、オペレータは、このウィンドウ112によって、ロボット12の周囲に存在する物体(人間または障害物等)までの距離およびその方向を確認することができる。
ロボットモーションウィンドウ114には、ロボット12の関節角度センサ98で検出された角度情報に基づくロボット12の姿勢または動きが、たとえば3次元CG画像で表示される。オペレータは、このウィンドウ114によって、ロボット12の現在の姿勢または動き、具体的には頭部70の向きおよび両腕(上腕58および前腕62)の向きを確認することができる。
騒音計ウィンドウ116には、環境の騒音計24で検出された騒音レベルが表示される。ウィンドウ116の上部タイトル欄には、環境の騒音計24の名称ないし識別情報(EN1,…)が表示される。たとえば、ロボット12の現在位置を含む領域の騒音を検出する騒音計24を特定し、当該騒音計24に対応する表示フラグをオンにしてそのウィンドウ116を表示する。また、ロボット12の現在位置から所定距離内の騒音計24の表示フラグをオンにするようにしてもよい。また、オペレータは、表示設定メニューで、複数の環境騒音計24の中から、所望の騒音計24を選択することができる。オペレータは、このウィンドウ116によって、ロボット12の存在する場所周辺や近辺の騒音レベルを確認することができるし、また、メニュー選択によって自分のチェックしたい場所の騒音レベルを確認することができる。
環境距離センサウィンドウ118には、環境の距離センサ22で検出された距離情報が表示される。ウィンドウ118の上部タイトル欄には、環境の距離センサ22の名称ないし識別情報(ED1,…)が表示される。たとえば、ロボット12の現在位置に最も近いあるいは所定距離内の環境距離センサ22を特定し、当該環境距離センサ22に対応する表示フラグをオンにしてそのウィンドウ118を表示する。また、オペレータは、表示設定メニューで、複数の環境距離センサ22の中から、所望の環境距離センサ22を選択することができる。環境の距離センサ22が展示物等の物体26に関連して設置される場合には、選択リストには物体26の名称等が表示されてよい。また、環境の距離センサ22が通路など特定の場所ないし領域に関連して設置される場合には、当該場所の名称等を選択リストに含めるようにしてよい。環境距離センサ22によって、当該距離センサ22の前に人間が存在するか否かを検出することができるし、また、複数の環境距離センサ22を特定の場所ないし領域に設置する場合には、当該領域内にどれくらいの人間が存在するかを検出することができる。環境距離センサウィンドウ118では、たとえば、当該環境距離センサ22の検出領域内に存在する人間等を示すアイコンが、原点から検出方向に検出距離だけ離れた位置に表示される。オペレータは、このウィンドウ118によって、ロボット12の現在位置に近い物体26や場所等に人間等が存在するか否かや、どのくらいの人間が存在するかを確認することができるし、また、自分の知りたい物体26や場所について人間等の存在を確認することができる。
地図ウィンドウ120には、たとえば博物館等のロボット12の配置された空間ないし場所を示す地図が表示される。この地図には、ロボット12の配置された環境の全体が示されてもよいし、一部が示されてもよい。そして、この地図上に、環境センサ情報に基づいて検出されたロボット12の配置された環境に関する情報が表示される。この実施例では、当該環境情報として、当該環境における注意情報が表示され、具体的には混雑領域および煩い領域が示される。
混雑領域は、各環境カメラ18の撮影画像に基づいて検出される。具体的には、各環境カメラ18は所定位置で所定方向に向けて固定的に設けられるので、常に一定の領域が撮影される。この撮影画像のうち特定領域に注目して、その特定領域における予め取得した背景画像と撮影画像との差分量をみることによって、その領域にどれぐらい人間もしくは物体が存在しているかを推定することができる。たとえば、差分発生領域が特定領域の所定割合(たとえば5割)以上であれば混雑している等の判別式を用いて混雑領域を算出する。地図上では、混雑領域は、地図背景色と異なりかつ他の環境情報を示す色とも異なる所定色(たとえば赤色)のマーク等を用いて表示される。図5では便宜上斜線模様付き円でこの混雑領域が示される。たとえば差分画像をそのままオペレータに提示した場合には、どの領域ないし場所が混雑しているのか、オペレータは瞬時に判断することは困難であるが、このような表示形態を用いることによって、オペレータは混雑している場所を極めて容易に知ることができる。
煩い領域は、各騒音計24で測定された騒音レベルに基づいて検出される。具体的には、騒音レベルが所定の閾値以上である場合には、当該騒音計24の設置された領域ないし場所は煩い領域であると判別される。地図上では、煩い領域は、地図背景色と異なりかつ他の環境情報を示す色とも異なる所定色(たとえば黄色)のマーク等を用いて表示される。図5では便宜上格子縞模様付き円でこの煩い領域が示される。たとえば騒音計24で測定された値(騒音レベル)をそのまま見るよりも、このような表示形態を用いることによって、オペレータは煩い場所を極めて容易に知ることができる。
このようにして、ロボット12の存在する環境を示す地図を表示するともに、地図上で環境情報を表示するようにしたので、当該環境情報をオペレータに極めて分り易く提供することができる。また、この実施例では、環境情報として、混雑領域や煩い領域等のような当該環境においてロボット12の移動や身体動作に支障の出そうな場所が表示される。つまり、ロボット12の遠隔操作にあたってオペレータに注意を喚起しまたは注意を促すための情報が表示される。このように、ロボット12の存在する環境における注意情報を非常に分り易く提供することができる。
また、この地図上には、ロボット12の現在位置に対応する位置に当該ロボット12を示すマーク等(図5では黒三角)が表示される。この実施例では、上述のように、ロボット12に無線タグを取り付け、無線タグリーダ20で当該無線タグまでの距離情報を検出することによって、当該ロボット12の位置を推定することができる。オペレータは、地図上で上述の環境情報をロボット12の現在位置と一緒に見ることによって、現在のロボット12と混雑領域もしくは煩い領域との位置関係を一目で把握することができる。たとえば、オペレータは、ロボット12が混雑領域や煩い領域内に存在する場合には移動の操作コマンド入力を避けたり、ロボット12の現在のモーションをウィンドウ114で参照しつつその必要があると判断した場合には身体動作を含む操作コマンド入力を控えたり、また、ロボット12が混雑領域や煩い領域外に存在する場合には当該領域の方への移動を避けたりするといった遠隔操作の判断を容易に行うことができる。
また、地図上には、環境に設置されたセンサ18、20、22、24の位置や、展示物等の物体26の位置等も表示するようにしてよい。図5では、無線タグリーダ20の設置位置が無線タグリーダ20を示すマーク(白四角)を用いて示される。図5では示さないが、マークには当該センサ18、20、22、24や物体26等の名称ないし識別情報等が付されてよい。このように、地図上に各センサ18、20、22、24や物体26等の位置を示す場合には、どのセンサ18、20、22、24のウィンドウ110、116、118をセンサ情報画面上に開くかをオペレータに決定させ易くすることが可能になる。たとえば、混雑領域や煩い領域を撮影する環境カメラ18の特定が容易に行えるので、オペレータは、当該環境カメラ18のウィンドウ110の表示を表示設定メニューで選択することによって、当該混雑領域や煩い領域の実際の様子を映像で確認することができる。
オペレータは、上述の図5のようなセンサ情報画面によって環境情報を容易に把握しながら、図6のような操作画面で操作コマンドを入力することによってロボット12を遠隔操作することができる。
操作画面は、現在のロボット12の状態を示す第1領域130および操作コマンドを示す第2領域132を含む。具体的には、第1領域130には、現在のロボット12の状況(状態)および実行中のコミュニケーション行動が文字で表示される。図6に示す例では、ロボット12は、その状態が「IDLE」であり、「ASOBO(遊ぼう)」のコミュニケーション行動を実行していることが示される。ロボット12がオペレータの指示によらないで自律行動している場合には、その状態は「IDLE」であり、逆にオペレータに指示に従ってコミュニケーション行動している場合には、その状態は「BUSY」である。コミュニケーション行動は、当該行動を実現するための行動モジュールと呼ばれるプログラムに従って実行される。第1領域130に表示されるコミュニケーション行動は、当該行動モジュールの名称ないし識別情報(すなわち操作コマンド)であってよい。ロボット12は、上述のように、たとえば一定時間ごとにセンサ情報とともに行動状態を操作用コンピュータ14に送信しており、第1領域130の表示は、受信した行動状態に基づいて行われる。
また、第1領域130には、終了ボタン(アイコン)134が表示される。この終了ボタン134は、操作画面を閉じる、すなわち、ロボット12の遠隔操作を終了するためのものである。
第2領域132には、オペレータによって指示される操作コマンドが表示される。たとえば、表示領域136、138、140、142が設けられる。表示領域136−140には、各コミュニケーション行動を指示するための操作コマンドが表示されている。すいているとき(ロボット12の周囲の人が少ないとき)の行動、混んでいるとき(ロボット12の周囲の人が多いとき)の行動、および通常動作の3つに分類して操作コマンド名が表示される。これによって、オペレータの選択の効率性を向上させている。ただし、分類せずに1つの表示領域ですべてのコミュニケーション行動の操作コマンドを表示するようにしてもよい。また、図面では省略するが、多数のコマンド名が表示されるため、実際には、表示内容をスクロールするためのスクロールバーが設けられる。他の表示領域も同様である。
表示領域142には、コマンド履歴が表示される。つまり、ロボット12に送信され、実行されたコミュニケーション行動についての操作コマンド名がたとえば時系列で表示される。これによって、オペレータは、遠隔操作によって実行させたロボット12の行動履歴を確認することができる。
第2領域132には、さらに、コマンド送信ボタン144,緊急停止ボタン146,左ボタン148,前ボタン150,右ボタン152が設けられる。また、移動コマンドに関するボタンとして、前進ボタン154,左回転ボタン156,右回転ボタン158,後退ボタン160,停止ボタン162が設けられる。また、ロボット12の稼働を終了させるための終了ボタン164も設けられる。
コマンド送信ボタン144は、オペレータによって選択された操作コマンドをロボット12に送信するためのものである。緊急停止ボタン146は、ロボット12の動きを緊急に停止させるためのものである。
左ボタン148は、ロボット12の首関節68を左に所定角度だけ回動させるためのものである。たとえば、このボタン148がクリックされる度に、ロボット12の頭部70が左方向(S軸)に所定角度(たとえば5度)ずつ回動される。前ボタン150は、ロボット12の首関節68を正面の方向に向けるためのものである。このボタン150がクリックされると、ロボット12の顔(頭部70の正面)が正面方向を向くように、首関節68が制御される。右ボタン152は、ロボット12の首関節68を右に所定角度だけ回動させるためのものである。たとえば、このボタン152がクリックされる度に、ロボット12の頭部70が右方向(S軸)に所定角度(たとえば5度)ずつ回動される。
また、前進ボタン154は、ロボット12を前進させるためのものである。たとえば、ロボット12は、このボタン154がクリックされると前進し、ボタン162がクリックされて停止命令が与えられると停止する。左回転ボタン156は、ロボット12を左旋回させるためのボタンである。たとえば、ロボット12は、このボタン156がクリックされると左旋回し、停止命令が与えられると停止する。右回転ボタン158は、ロボット12を右旋回させるためのものである。たとえば、ロボット12は、このボタン158がクリックされると右旋回し、停止命令が与えられると停止する。後退ボタン160は、ロボット12を後退させるためのものである。たとえば、ロボット12は、このボタン160がクリックされると後退し、停止命令が与えられると停止する。停止ボタン162は、移動しているロボット12に停止命令を与えるためのものである。たとえば、このボタン162がクリックされると、ロボット12は、前進、左回転、右回転または後退を停止する。
また、終了ボタン164は、ロボット12の運転を終了(停止)させるためのものである。たとえば、このボタン164がクリックされるとロボット12に終了命令が与えられ、ロボット12は、各部位をホームポジションに戻した後、図4に示したような回路コンポーネントへの電源供給を停止する。
図7および図8に、操作用コンピュータ14のCPUの情報表示処理における動作の一例が示される。この情報表示処理は一定時間ごとに繰り返し実行される。また、情報表示処理は図9の操作処理など他の処理と並列的に実行される。
情報表示処理を開始すると、まず、ステップS1で、環境に設置された各センサ18、20、22、24の情報を、各コンピュータ18a、20a、22a、24aからネットワーク16を介して取得する。次に、ステップS3で、ロボット12に設置された各センサの情報をネットワーク16を介して取得する。たとえば、ロボット12に設けられた超音波距離センサ38の情報、および関節角度センサ98の情報を取得する。ただし、他のセンサ34、48、52、54、64の情報も取得してよい。
ステップS5では、ロボット12の位置を推定する。つまり、上述のように、環境に設けられた無線タグリーダ20の検出情報と予め記憶しておいた位置情報とに基づいて、ロボット12に取り付けられた無線タグの現在位置を算出する。
続いて、ステップS7で、環境情報としての注意情報(この実施例では、混雑領域および煩い領域)を検出する。つまり、上述のように、混雑領域は、環境カメラ18の撮影画像の差分画像に基づいて検出され、煩い領域は、環境の騒音計24で検出された騒音レベルに基づいて検出される。なお、複数の環境距離センサ22を配置した通路などの所定領域がある場合には、当該所定領域が混雑しているか否かを当該複数の環境距離センサ22で検出された情報に基づいて判定するようにしてもよい。
また、ステップS9では、表示フラグの設定を実行する。たとえば、情報表示処理の開始時には、予めメモリに記憶されている初期設定データに基づいて、各ウィンドウ110−120の表示フラグを設定する。また、表示設定メニューの選択操作が行われたときには、図示しない設定画面を表示装置に表示して、センサ情報画面内にウィンドウ110−120で表示する各センサ情報および地図情報の選択をオペレータに行わせる。オペレータの選択に応じて、当該選択されたセンサ情報または地図情報に対応する表示フラグがオンにされる。また、ステップS5で推定されたロボット12の現在位置と予めメモリに記憶された各環境センサの位置情報とに基づいて、自動的に表示フラグの設定を行うようにしてもよい。たとえば、ロボット12の現在位置がその撮影領域に含まれる環境カメラ18を特定し、当該環境カメラ18のウィンドウ110の表示フラグをオンにする。あるいは、ロボット12の現在位置から所定距離内に存在する各センサ18、22、24を特定し、当該センサのウィンドウ110−118の表示フラグをオンにしてもよい。
続くステップS11からS43で、表示フラグに従って、ウィンドウ110−120の表示処理を行う。具体的には、ステップS11で、現時刻の各環境カメラ18の情報を受信したか否かを判断する。ステップS11で“YES”であれば、ステップS13で、表示フラグがオンである環境カメラ18の撮影画像を示す環境カメラウィンドウ110を表示する。
ステップS11で“NO”の場合、または、ステップS13を終了すると、ステップS15で、現時刻の各環境距離センサ22の情報を受信したか否かを判断する。ステップS15で“YES”であれば、ステップS17で、表示フラグがオンである環境距離センサ22の距離情報を示す環境距離センサウィンドウ118を表示する。
ステップS15で“NO”の場合、または、ステップS17を終了すると、ステップS19で、現時刻の各環境騒音計24の情報を受信したか否かを判断する。ステップS19で“YES”であれば、ステップS21で、表示フラグがオンである環境騒音計24の騒音レベルを示す騒音計ウィンドウ116を表示する。ステップS19で“NO”の場合、または、ステップS21を終了すると、処理は図8のステップS23へ進む。
図8のステップS23では、現時刻のロボット12の関節角度センサ98の情報を受信したか否かを判断する。ステップS23で“YES”であれば、ステップS25で、ロボット12の動きに関する表示フラグはオンであるか否かを判断する。ステップS25で“YES”であれば、ステップS27で、ロボット12の動きを示すロボットモーションウィンドウ114を表示する。
ステップS23もしくはS25で“NO”の場合、または、ステップS27を終了すると、ステップS29で、現時刻のロボット12の超音波距離センサ38の情報を受信したか否かを判断する。ステップS29で“YES”であれば、ステップS31で、ロボット12の距離センサ情報に関する表示フラグはオンであるか否かを判断する。ステップS31で“YES”であれば、ステップS33で、ロボット12の距離センサ情報を示すロボット距離センサウィンドウ112を表示する。
ステップS29もしくはS31で“NO”の場合、または、ステップS33を終了すると、ステップS35で、地図に関する表示フラグはオンであるか否かを判断する。ステップS35で“YES”であれば、ステップS37で、地図ウィンドウ120を表示して、ロボット12の存在する環境の地図を表示する。
続いて、ステップS39で、地図上において、ステップS5で算出された現在位置に対応する位置に、ロボット12のマーク(図5では黒三角)を表示する。
そして、ステップS41で、環境の情報に関する表示フラグがオンであるか否かを判断する。ステップS41で“YES”であれば、ステップS43で、地図上に環境の情報、この実施例では環境における注意情報を表示する。具体的には、地図上において、ステップS7で検出された混雑領域に対応する位置に、混雑領域を示すマーク(図5では斜線模様付き円)等を表示する。また、ステップS7で検出された煩い領域に対応する位置に、煩い領域を示すマーク(図5では格子模様付き円)等を表示する。
ステップS35で“NO”の場合、ステップS41で“NO”の場合、またはステップS43を終了すると、ステップS45で、終了指示が行われた否かを判断する。つまり、オペレータの入力装置の操作によってセンサ情報画面の表示の終了を指示するメニューが選択されたか否かを判断する。ステップS45で“NO”であれば、図7のステップS1に戻って処理を繰り返し、センサ情報画面を更新する。一方、ステップS45で“YES”であれば、センサ情報画面を閉じて、この情報表示処理を終了する。なお、センサ情報画面で終了指示が行われた場合には、図9の操作処理も終了する。
図9には、操作用コンピュータ14のCPUの操作処理における動作の一例が示される。操作処理を開始すると、まず、ステップS61で、図6に示すような操作画面を表示する。なお、操作画面とセンサ情報画面とは、表示装置上にたとえば並べて表示される。
続くステップS63からS71の処理を一定時間ごとに繰り返し実行する。すなわち、ステップS63で、ロボット12の行動状態をネットワーク16を介して取得して、操作画面の第1領域130に、動作状態および実行中のコミュニケーション行動等を表示する。
続いて、ステップS65で、入力装置からの入力データとメモリに記憶された操作コマンドおよびボタン配置データとに基づいて、操作コマンドが選択されたか否かを判断する。具体的には、コミュニケーション行動を指示するコマンドの場合には、表示領域136、138、140で当該コマンドが選択された状態で、コマンド送信ボタン144が選択されたか否かを判断する。また、各ボタン146―164に割り当てられたコマンドの場合には、当該ボタン146−164が選択されたか否かを判断する。
ステップS65で“YES”であれば、ステップS67で、選択された操作コマンドを特定し、当該操作コマンドをネットワーク16を介してロボット12に送信する。続いて、ステップS69で、送信した操作コマンドを表示領域142に追加して、コマンド履歴を時系列で表示する。
ステップS65で“NO”の場合、または、ステップS69を終了すると、ステップS71で、終了指示が行われたか否かを判断する。具体的には、終了ボタン134が選択されたか否かを判断する。ステップS71で“NO”であれば、ステップS63に戻って処理を繰り返して、上述のように、操作画面の第1領域130の表示を更新し、オペレータの選択に応じて操作コマンドを送信する。一方、ステップS71で“YES”であれば、操作画面を閉じてこの操作処理を終了する。なお、操作画面で終了指示が行われた場合には、図7および図8の情報表示処理も終了する。
この実施例によれば、ロボット12のセンサ情報だけでなく、ロボット12の存在する環境のセンサ情報を表示するようにしたので、ロボット12の周辺環境の情報をオペレータに提供することができる。また、混雑領域や煩い領域のような当該環境における注意情報をたとえば地図上に表示する等、環境情報を分り易く表示するようにしたので、ロボット12の周辺環境を極めて容易にかつ瞬時にオペレータに把握させることができる。このため、たとえば、オペレータがロボット12の行動制御を決定するまでの時間が減少することが期待できる。したがって、オペレータに効率よくロボット12の遠隔操作を行わせることができる。
また、混雑領域や煩い領域等の環境における注意情報の表示によって、ロボット12が移動や身体動作に支障のある状況にあるのかどうかを容易に把握させることができるし、あるいは、身体動作や移動に支障のありそうな場所がどこなのかを容易に把握させることができる。このように、オペレータにロボット12の周辺環境およびその状況を的確に把握させてその行動を制御させることができるので、ロボット12の遠隔操作の効率性とともに安全性を向上することができる。
さらに、上述のように自律制御可能なロボット12の遠隔制御の効率性および安全性を向上できるので、たとえば1人のオペレータが同時に複数のロボット12の遠隔操作を担当することも可能になる。つまり、少数のオペレータが多くのロボット12を同時に制御することも可能になる。
なお、上述の実施例では、操作用コンピュータ14は、各環境センサ18、20、22、24の接続された各コンピュータ18a、20a、22a、24aから各環境センサ情報を受信し、また、ロボット12からそのセンサ情報を受信するようにしていた。しかし、他の実施例では、ネットワーク16に接続された中央制御装置等の他のコンピュータが環境センサ情報またはロボット12のセンサ情報を取得するようにして、当該コンピュータがこれらセンサ情報を操作用コンピュータ14に与えるようにしてもよい。
また、上述の各実施例では、操作用コンピュータ14が、ロボット12の現在位置、混雑領域、煩い領域などを算出するようにしていた。しかし、他の実施例では、上記中央制御装置等の他のコンピュータが、センサ情報画面の表示に必要なこれらの情報を算出して、操作用コンピュータ14に与えるようにしてもよい。