説明

無線タグの位置推定システム

【構成】無線タグの位置推定システムは、所定空間に配置された複数の無線タグ読取機14を含む。この所定空間に配置された読取機14による検出に基づいて、その検出時刻における所定空間内の無線タグの位置が推定される。その位置の推定された無線タグを目標として移動型ロボット16の移動が制御させる。移動型ロボット16には無線タグ読取機18が設けられている。この読取機18によって目標とされた無線タグが検出されたとき、読取機18による検出に基づいて、当該検出時刻における当該無線タグの推定位置座標が算出されて記録される。
【効果】無線タグの位置をより正確に推定することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は無線タグの位置推定システムに関し、特にたとえば、所定空間における無線タグの位置を移動型ロボットを用いて推定する、無線タグの位置推定システムに関する。
【背景技術】
【0002】
たとえば本件出願人による特許文献1には、無線タグから発せられる電波の受信強度を用いて単体の無線タグ読取機からその無線タグがどの程度はなれているかを検出する技術の一例が開示されている。
【0003】
また、複数の無線タグ読取機を用いれば、無線タグのおおまかな存在領域を把握することも可能であり、たとえば三角測量の手法によって無線タグのおおまかな存在場所を推定することもできる。
【特許文献1】特開2004−216513号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
さらに解像度を向上させるために、無線タグ読取機の台数を増やすことが考えられるが、回り込みや反射などの電波の特性上、誤差が大きいため実効が上がらない。たとえば複数の無線タグ読取機を10cm程度の極短い間隔で敷き詰めれば、精度よく無線タグの位置を推定することも可能になると考えられる。しかしながら、無線タグ読取機は非常に高価であり、また、空間内に多数の無線タグ読取機を設置することも困難であるため、実用に適さない。
【0005】
それゆえに、この発明の主たる目的は、無線タグの位置を精度よく推定することができる、無線タグの位置推定システムを提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、所定の空間における無線タグの位置を移動型ロボットを用いて推定する無線タグの位置推定システムであって、空間の所定の位置にそれぞれ配置されるかつ無線タグを検出する複数の第1読取機、複数の第1読取機の空間における座標を示す位置データを記憶する位置データ記憶手段、複数の第1読取機のそれぞれの検出情報を取得する第1取得手段、検出された無線タグごとに、当該無線タグを検出した第1読取機の位置データおよび受信電波強度に関する情報に基づいて、検出時刻における当該無線タグの位置を推定する第1推定手段、第1推定手段によってその位置が推定された無線タグを目標として、移動型ロボットの移動を制御する移動制御手段、移動型ロボットに設けられるかつ無線タグを検出する第2読取機、第2読取機の空間における座標を示す位置データを算出する位置算出手段、第2読取機の検出情報を取得する第2取得手段、移動の目標とされた無線タグが第2読取機によって検出されたとき、少なくとも第2読取機の位置データおよび受信電波強度に関する情報を用いて、当該検出時刻における当該無線タグの位置を推定する第2推定手段を備える、無線タグの位置推定システムである。
【0007】
請求項1の発明では、無線タグの位置推定システムは、無線タグを検出する複数の第1読取機を含み、複数の第1読取機は所定の空間において所定の位置にそれぞれ配置される。位置データ記憶手段は、複数の第1読取機の所定空間における位置座標を記憶している。第1取得手段は複数の第1読取機のそれぞれの検出情報を取得する。第1推定手段は、検出された無線タグごとに、その検出時刻における位置を推定する。この推定は、当該無線タグを検出した第1読取機の位置データおよび受信電波強度に基づいてなされる。移動制御手段は、位置の推定された無線タグを目標として、移動型ロボットの移動を制御する。移動型ロボットには第2読取機が設けられていて、第2読取機の検出情報は第2取得手段によって取得される。位置算出手段は第2読取機の所定空間における座標を算出する。第2推定手段は、移動の目標とされた無線タグが第2読取機によって検出されたとき、少なくとも第2読取機の位置データおよび受信電波強度に関する情報を用いて、当該検出時刻における当該無線タグの位置を推定する。
【0008】
したがって、請求項1の発明によれば、所定空間に配置された複数の第1読取機による検出に基づいて無線タグのおおまかな位置を推定した後に、その推定位置を目標に移動型ロボットを移動させることによって第2読取機でその無線タグを検出するようにしたので、無線タグのより正確な位置を推定することができる。
【0009】
請求項2の発明は、請求項1の発明に従属し、第1推定手段によってそれぞれの位置が推定された複数の無線タグの中から移動の目標とする無線タグを選択する選択手段をさらに備える。
【0010】
請求項2の発明では、複数の無線タグの位置が推定された場合に、選択手段が移動の目標とする無線タグを選択する。これによって、移動制御手段は選択された無線タグを目標として移動型ロボットの移動を制御する。したがって、目標として選択した無線タグの位置をより正確に推定することができる。
【0011】
請求項3の発明は、請求項1または2の発明に従属し、第2推定手段によって推定された無線タグの位置をその検出時刻に関連付けて記憶する推定位置記憶手段をさらに備える。
【0012】
請求項3の発明では、推定位置記憶手段が検出時刻に関連付けて無線タグの推定位置を記憶するので、無線タグのより正確な移動の履歴を記録することができる。
【発明の効果】
【0013】
この発明によれば、複数の読取機によって検出した情報に基づいて無線タグのおおまかな位置を推定した後、その推定位置の付近へ移動型ロボットを移動させて、ロボットに搭載された読取機でその無線タグを検出し、その検出した情報に基づいて位置を推定するようにしたので、無線タグのより正確な位置を推定することができる。
【0014】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0015】
図1を参照して、この実施例の無線タグの位置推定システム(以下、単に「システム」という。)10は、このシステム10を全体的に制御する中央コンピュータ12および環境に設置される複数の無線タグ読取機(以下、単に「読取機」という。)14を含む。このシステム10はさらに移動型ロボット(以下、単に「ロボット」という。)16を含み、このロボット16にも読取機18が設けられる。また、中央コンピュータ12の内部または外部には、無線タグ20の推定位置が格納される推定位置データベース(DB)22が設けられる。中央コンピュータ12には、たとえばRS232Cのような汎用インタフェースを介して複数の読取機14が接続される。また、中央コンピュータ12と移動型ロボット16とは無線LANなどを介して接続される。なお、複数の読取機14は無線LANなどを介して中央コンピュータ12と接続されてもよい。
【0016】
さらに図2も参照して、このシステム10は、所定の空間24における無線タグ20の位置を推定するためのものである。所定の空間24は、一例として、博物館や科学館のような展示環境や学校の教室等が考えられる。無線タグ20は空間24に存在するまたはこの空間24を訪問する人間26に取り付けられる。このシステム10は、換言すれば、空間24において自由に移動する人間26の位置を推定しようとするものでもある。
【0017】
複数の読取機14のそれぞれは、空間24内における無線タグ20を検出可能となるように、空間24内の所定の位置に固定的に配置される。望ましくは、無線タグ20が空間24内のどの位置に存在しても、少なくとも3つの読取機14で検出されるように、複数の読取機14は配置される。この場合、環境に設置された読取機14の検出情報に基づいて、三角測量の手法によって無線タグ20のおおまかな位置を推定することができる。
【0018】
また、ロボット16は、処理を開始する前に、空間24内の所定の位置に所定の向き(角度)で配置される。ロボット16の読取機18は、ロボット16の所定の位置に固定的に配置されている。
【0019】
なお、無線タグ20としてはRFIDタグが使用される。RFID(Radio Frequency Identification)は、電磁波を利用した非接触ICタグによる自動認識技術のことである。RFIDタグは、識別情報用のメモリや通信用の制御回路等を備えるICチップおよびアンテナ等を含む。そのメモリには、タグ固有識別情報等が予め記憶され、その識別情報等が所定周波数の電磁波・電波等によってアンテナから所定の時間間隔で出力される。この実施例では、すべての無線タグ20の送信電波強度は同一に設定される。
【0020】
なお、伝送方式としては、この実施例では、空間24内における無線タグ20の位置を推定するので、たとえば、交信距離の比較的長いマイクロ波方式(最大5m程度)のものを使用することができる。また、電源の方式は、適切な交信距離領域を確保するため、電池内蔵の能動型を用いるのが望ましい。また、タグの形態ないし形状は任意であり、たとえばカード形、ラベル形、コイン形、スティック形などであってよい。
【0021】
読取機14および18は、この実施例では、RFIDタグからの出力情報を検出するものである。具体的には、読取機14および18はアンテナを含み、RFIDタグから送信される識別情報の重畳された電波をアンテナを介して受信する。そして、受信した電波信号を増幅し、当該電波信号から識別情報を分離し、当該情報を復調(デコード)する。
【0022】
この読取機14および18では、電波受信感度(アンテナ感度)を段階的に(この実施例では8段階で)調節することが可能になっていて、これにより、無線タグ20の最大検出可能距離(感知範囲)をたとえば8段階で設定することができる。たとえば受信感度レベルLが8のときに最も広い感知範囲となり、受信感度レベルLが1のときに最も狭い感知範囲となる。そして、読取機14および18は、検出時刻において、電波受信感度(読み取り強度)の設定レベルLを自動的に変更しつつ無線タグ20の読み取りを行い、その検出時刻における全レベルでの読み取りの結果を出力することができる。
【0023】
読取機14および18は、たとえば図3に示すような検出情報を出力する。検出情報には、自己の読取機固有ID(識別情報)、検出時刻t、および検出された無線タグ20の情報を含む。検出された無線タグ20の情報は、全受信感度レベルでの読み取り結果であり、受信感度レベルLに関連付けてそのレベルLで検出された無線タグ20の固有IDが記憶されている。複数の無線タグ20が検出された場合には、複数のタグ固有IDが記憶される。また、無線タグ20が検出されなかった場合には、当該受信感度レベルLに関連付けてたとえば検出なしを示すデータが記述される。なお、読取機14はこの検出情報を中央コンピュータ12のCPUに与え、読取機18はこの検出情報をロボット16のCPU28(図15)に与える。
【0024】
そして、この実施例では、すべての無線タグ20の送信電波強度は同一に設定されているので、このように読取機14および18で最大検出可能距離(感知範囲)を段階的に変更しつつ読み取りを行うことによって、無線タグ20が存在すると仮定する領域を把握することが可能になる。たとえば受信感度レベルがLのときに検出されている無線タグ20が、1段階下のレベルL−1のときに検出されていない場合、その無線タグ20はレベルL−1での最大検出可能距離からレベルLでの最大検出可能距離までの間の領域に存在すると仮定することができる。この存在仮定領域については図7を参照して後述する。
【0025】
また、この電波受信感度の設定レベルLに基づいて、無線タグ20から出力された電波の受信強度(受信電波強度)を把握することが可能である。上述のようにすべての無線タグ20の送信電波強度は同一であるので、たとえば最も感度の高い設定レベル(L=8)になってはじめて無線タグ20が検出される場合には、当該無線タグ20は感知範囲が最大になってはじめて検出されるので、検出される無線タグ20の中では読取機14および18から最も遠い範囲に存在しており、その受信電波強度は最も弱いものとなる。一方、最も感度の低い設定レベル(L=1)、すなわち、最小の感知範囲になっても無線タグ20が検出される場合には、当該無線タグ20は、検出される無線タグ20の中では読取機14および18に最も近い範囲に存在しており、その受信電波強度は最も強い。このように、電波受信感度の設定レベルLごとの無線タグ20の検出の有無に基づいて、無線タグ20の受信電波強度を段階的に(この実施例では8段階で)検出することが可能である。
【0026】
なお、読取機14および18の電波受信感度のレベルLに対応する最大検出可能距離は、個体差があるため、それぞれの読取機14および18ごとに実験によって予め計測されている。
【0027】
また、この実施例では、読取機14および18から検出時刻tを出力するようにしているが、他の実施例では、中央コンピュータ12およびロボット16にタイマを設けて検出時刻tをカウントするようにしてもよい。
【0028】
また、製品の一例として、無線タグ20にはRF Code社(http://www.rfcode.com/)の「SPIDER(商標)」タグを使用することができ、読取機14および18には同社の「SPIDER(商標)」リーダを使用することができる。これらは303.8MHzの極超短波帯の電波を使用している。
【0029】
中央コンピュータ12は、パーソナルコンピュータやワークステーションのようなコンピュータであり、CPUおよびメモリなどを含む。メモリはROM、HDDおよびRAMなどを含む。ROMないしHDDにはこのシステム10の全体的な動作を制御するために必要なプログラムおよびデータが記憶されていて、CPUはこのプログラムに従って処理を実行する。RAMはCPUの作業領域またはバッファ領域として使用され、CPUの処理によって生成されまたは取得されたデータが記憶される。また、CPUには、たとえば無線LAN、インタネットのようなネットワークを介して、外部のコンピュータと無線または有線で通信するための通信装置が接続されている。CPUは、この通信装置および無線LANを介してロボット16と無線通信をする。さらに、CPUには、複数の読取機14が汎用インタフェースを介して接続される。
【0030】
なお、図1では、複数の読取機14のすべてが1つの中央コンピュータ12に接続された場合を示したが、中央コンピュータ12または複数の読取機14を担当する複数のコンピュータによって構成されてもよい。この場合、各コンピュータは、読取機14で検出した情報を含むデータを通信装置を介してメインとなる1つのコンピュータに送信し、このメインコンピュータが受信したデータに基づいて位置推定のための処理を実行する。
【0031】
図4には、中央コンピュータ12のメモリに記憶されている読取機14に関する情報の内容の一例が示される。このデータには、読取機固有ID(IDR1〜IDRn)に関連付けて、各読取機14の空間24における設置位置の座標(XeN,YeN)、および電波受信感度レベルLごとの最大検出可能距離dNLが登録されている(N=1〜n)。なお、この図4において環境に設置される読取機14の数を示す所定値nは、図11においてユーザ数(タグ数)を示す所定値nとは無関係に設定されるものであり、両者の値が同一であることを意味するものではない。電波受信感度レベルLごとの最大検出可能距離は、すべての読取機14ごとに予め実験によって測定された値が登録される。
【0032】
読取機14から取得される検出情報には、上述のように、読取機固有IDと電波受信感度レベルLの情報が含まれるので、中央コンピュータ12は、このデータを参照することによって、その読取機14の設置位置の座標と各レベルLでの最大検出可能距離を把握できる。
【0033】
なお、所定空間24における位置データは、図2に示すようにXY2次元平面座標系で表され、この実施例では鉛直方向(Z軸)の座標は設定されない。また、この空間24の2次元XY平面の各座標(x,y)は任意に設定されてよいが、たとえば1cmを単位長さとして定められてよい。
【0034】
図5には、中央コンピュータ12のメモリに記憶されている読取機18に関する情報の内容の一例が示される。このデータには、読取機固有ID(IDRr)に関連付けて、読取機18のロボット16における設置位置の座標(Xrr,Yrr)、および電波受信感度レベルLごとの最大検出可能距離drLが登録されている。なお、読取機18のロボット16における設置位置座標(Xrr,Yrr)は、ロボット16の空間24における位置座標(Xr,Yr)(たとえばロボット16の中心位置)からのずれを示すものであり、ロボット16の現在位置が把握されたときに読取機18の現在位置(Xr1,Yr1)も把握される。また、この読取機18の電波受信感度レベルLごとの最大検出可能距離も、予め実験によって測定された値が登録されている。中央コンピュータ12は、読取機18からの検出情報(図3)をロボット16から取得したとき、その情報に含まれる読取機固有IDおよび電波受信感度レベルLに基づいて、このデータを参照することによって、読取機18の現在の座標を算出することができるとともに、各電波受信感度レベルLでの最大検出可能距離を把握できる。
【0035】
図6には、中央コンピュータ12で生成されるタグに関する情報の内容の一例が示される。中央コンピュータ12のCPUは、すべての読取機14の検出情報に基づいて、タグごとに、このタグに関する情報を生成する。このタグに関する情報には、無線タグ20のタグ固有IDに関連付けて、検出時刻t、および当該タグを検出した読取機の情報が記憶される。この読取機の情報には、当該タグを検出した読取機14の読取機固有IDに対応づけて、区分レベルが記憶される。
【0036】
この区分レベルは、当該無線タグ20の検出の有無を区分する電波受信感度レベルLである。上述のように、当該無線タグ20について、あるレベルLまでは検出されるがその1段階下のレベルL−1では検出されないような場合があるので、このような当該無線タグ20の検出の有無を分ける電波受信感度レベルLを検出して、当該電波受信感度レベルLを区分レベルLとして設定する。なお、電波受信感度レベルLが1のときでも当該無線タグ20が検出されている場合には、区分レベルは1とされる。
【0037】
図7には、区分レベルによって仮定できる無線タグ20の存在仮定領域が示される。ある読取機Nの検出情報から検出された区分レベルがLであった場合、つまり、受信感度レベルがLのときに検出されている無線タグ20が、1段階下のレベルL−1のときには検出されていない場合、その無線タグ20は、読取機Nの位置座標(XeN,YeN)からレベルL−1での最大検出可能距離dNL−1までの領域には存在しないが、その外側のレベルLでの最大検出可能距離dNLまでの領域には存在すると仮定することができる。つまり、その無線タグ20は、読取機Nの位置座標(XeN,YeN)を中心とし、長さdNLおよびdNL−1をそれぞれ半径とした2つの円の間の領域(斜線部分。図7の式(1)で示される。)に存在すると仮定できる。
【0038】
このように、区分レベルLによって、無線タグ20の存在仮定領域がどの範囲になるかが決まる。たとえば、区分レベルLが1であるときは、受信感度レベルLが1になっても無線タグ20が検出されるので、存在仮定領域は読取機Nに最も近い範囲となる。また、区分レベルLが8であるときは、受信感度レベルLが8になってはじめて無線タグが検出されるので、存在仮定領域は読取機Nに最も遠い範囲となる。
【0039】
また、区分レベルLは受信電波強度のレベルにも対応するものであるといえる。つまり、区分レベルLが1であるときは、無線タグ20は読取機Nに最も近い範囲に存在するので、その受信電波強度のレベルは最大であり、一方、区分レベルLが8であるときは、無線タグ20は読取機Nに最も遠い範囲に存在するので、その受信電波強度のレベルは最小である。このように、区分レベルLは、受信電波強度に関する情報を含んだものでもある。
【0040】
なお、図7では、環境に設置される読取機14の位置座標(XeN,YeN)と最大検出可能距離dNLとを用いて、存在仮定領域について示したが、ロボット16に搭載される読取機18の存在仮定領域も同様にして決められるのは言うまでもない。
【0041】
図8には、区分レベルLと存在仮定領域との関係の一例を示す。これらは実験によって得られた値である。また、上述のように読取機ごとに個体差があるので、図8の数値は一例に過ぎない。たとえば、環境に設置される読取機14では、区分レベルLが「4」であった場合、読取機14の位置座標からの距離が100cmから150cmまでの間の領域が存在仮定領域となる。また、ロボット16に搭載される読取機18では、区分レベルLが「4」であった場合、読取機14の位置座標からの距離が40から60cmまでの間の領域が存在仮定領域となる。
【0042】
ロボット16に搭載される読取機18としては、その最大検出可能距離が、各レベルLにおいて環境に設置される各読取機14の最大検出可能距離よりも小さいものを使用する。つまり、読取機18は、全てのレベルで読取機14よりも狭い感知範囲を有する。そして、このような読取機18では、図8に一例を示すように、区分レベルLごとの存在仮定領域を、非常に小さく設定することができる。したがって、ロボット16の読取機18で無線タグ20を検出することによって、無線タグ20が存在していると推定される範囲を小さくすることができるので、その無線タグ20の存在する位置をより精度よく推定することが可能になる。たとえば、環境の読取機14のみによる位置推定の誤差が数〜十数mであるときでも、ロボット16を用いることによって、誤差を数十cm以下にすることが可能である。このように、移動型ロボット16を用いることによって、環境内に非常に狭い密度で読取機14を配置するようなことなく最低限必要な数の読取機14を配置するだけで、精度の良い位置推定を行うことができる。この実施例では、環境に設置される読取機14の設置間隔は、場所にもよるが、およそ4m〜8m程度でよい。
【0043】
図9には、中央コンピュータ12のメモリに記憶されるロボット16の初期情報の内容の一例が示される。このデータには、ロボット16の空間24における初期位置座標(Xr0,Yr0)およびロボット16の初期角度θr0が登録される。ロボット16は、処理を開始する前に、所定空間24内において、初期位置座標に初期角度で配置される。ロボット16の角度は、図10に示すように、ロボット16の向きを表すものである。具体的には、図10では、上から見たロボット16が示される。一点鎖線はロボット16の左右方向の軸を示し、後述するロボット16の2つの車輪30(図14)の軸でもある。この左右方向軸と直交する矢印は、ロボット16の正面側を指している。ロボットの角度θrは、破線で示されるY軸の正側とロボット16の正面側を示す矢印とが成す角度(Z軸の反時計回り方向が正方向)である。
【0044】
なお、この実施例では、後述するように、ロボット16の内界センサ(車輪モータ34の角度センサ)の出力に基づいて、ロボット16の現在位置および現在角度を把握するようにしている。詳しくは、この実施例では、現在位置および現在角度の情報は、ロボット16で算出され中央コンピュータ12に送信される。しかしながら、ロボット16の現在位置および現在角度は、たとえば所定空間24の天井等に設置した複数のカメラなどのような外界センサから得られる情報に基づいて算出されてもよい。この場合には、初期設定処理として、中央コンピュータ12が外界センサの出力を取得して、ロボット16の初期位置および初期角度を算出するとともにロボット16に送信することが可能であるので、ロボット16の初期情報は、中央コンピュータ12およびロボット16に予め記憶されなくてもよい。
【0045】
図11には、中央コンピュータ12のメモリに記憶されるユーザ情報の内容の一例が示される。このデータには、ユーザID(IDU1〜IDUn)に関連付けて、そのユーザ26に取り付けられる無線タグ20の識別情報(無線タグ固有ID:IDT1〜IDTn)、およびそのユーザ名などのユーザに関する情報が登録される。中央コンピュータ12は、取得した無線タグ固有IDに基づいてこのデータを参照することによって、検出された人間26を特定することができる。
【0046】
図12には、中央コンピュータ12のRAMに一時記憶されるデータの一部が示される。ロボット16に関するデータは、ロボット16の現在位置の座標(Xr,Yr)示す現在位置データ、およびロボット16の現在の角度θrを示す現在角度データを含む。現在位置データおよび現在角度データの初期値は、たとえばHDDに登録されているロボットの初期情報(図9参照)の値が設定される。タグ履歴データは、ロボット16の読取機18で検出された無線タグ20の履歴を示すものであり、このデータには、検出された無線タグ20の固有IDが記憶される。また、目標タグ設定データには、目標タグに設定された無線タグの固有IDが記憶される。このデータは、たとえば目標タグに設定された無線タグ20がロボット16の読取機18で検出されたとき初期化される。あるいは、目標タグを追跡するような場合には、目標タグの位置推定を所定の時間継続して行ったと判断されたとき等に、この目標タグ設定データを初期化するようにしてもよい。
【0047】
中央コンピュータ12は算出した推定位置を推定位置DB22に記憶する。図13には、推定位置DB22に記憶される推定位置データの内容の一例が示される。推定位置DB22には、検出時刻tに関連付けて、無線タグ20のタグ固有IDおよびその推定位置座標、ならびに読取機の種別等が記憶される。読取機の種別は、その推定位置座標の精度を区別するためのものである。つまり、環境に設置された読取機14の検出情報のみに基づいて算出されたおおまかな精度の推定位置(Xp,Yp)である場合には、環境を示すデータが記述され、読取機14およびロボット16に設置された読取機18の両方の検出情報に基づいて算出された良い精度の推定位置(Xa,Ya)である場合には、ロボットを示すデータが記述される。この図13の例では、時刻t0において、識別情報のIDT1である無線タグ20の環境の読取機14による推定位置座標は(Xp1,Yp1)であることが記録されている。また、時刻t1においては、識別情報のIDT1である無線タグ20の環境の読取機14による推定位置座標は(Xp1,Yp1)であることと、識別情報のIDT1である無線タグ無線タグ20のロボット16の読取機18による推定位置座標は(Xa1,Ya1)であることとが記録されている。
【0048】
読取機18の搭載されるロボット16の一例が図14に示される。この実施例では、ロボット16として、身振りおよび音声によって人間26とコミュニケーションを図る機能を備えたコミュニケーションロボットが使用される。
【0049】
具体的には、ロボット16は台車32を含み、この台車32の下面にはロボット16を自律移動させる2つの車輪30が設けられる。2つの車輪30は車輪モータ34(図15)によって独立駆動され、台車32すなわちロボット16を前後左右任意の方向に動かすことができる。
【0050】
なお、図14においては省略するが、台車32の前面には、衝突センサ36(図15)が取り付けられ、この衝突センサ36は台車32への人26や他の障害物の接触を検知する。つまり、ロボット16の移動中に障害物との接触を検知すると、直ちに車輪30の駆動を停止してロボット16の移動を急停止させることが可能である。
【0051】
台車32の上には、多角形柱のセンサ取付パネル38が設けられ、このセンサ取付パネル38の各面には、超音波距離センサ40が取り付けられる。この超音波距離センサ40は、センサ取付パネル38すなわちロボット16の周囲の主として人26との距離を計測するものである。
【0052】
また、台車32の上には、さらに、その下部がセンサ取付パネル38に囲まれて、ロボット16の胴体が直立するように設けられる。この胴体は、下部胴体42と上部胴体44とによって構成され、下部胴体42および上部胴体44は、連結部46によって互いに連結される。図示は省略するが、連結部46には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体44の高さすなわちロボット16の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ48(図15)によって駆動される。
【0053】
上部胴体44のほぼ中央には、1つの全方位カメラ50と1つのマイク52とが設けられる。全方位カメラ50は、ロボット16の周囲を撮影するものであり、後述する眼カメラ54とは区別される。この全方位カメラ50としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。また、マイク52は、周囲の音、とりわけコミュニケーション対象である人26の声を取り込む。なお、これら全方位カメラ50およびマイク52の設置位置は上部胴体44に限られず適宜変更され得る。
【0054】
上部胴体44の両肩には、肩関節56Rおよび56Lによって、腕58Rおよび58Lが設けられる。腕58Rおよび58Lは、上腕60Rおよび60Lを含む。肩関節56Rおよび56Lは、それぞれ、3軸の自由度を有する。すなわち、肩関節56Rは、X軸、Y軸およびZ軸のそれぞれの軸廻りにおいて上腕60Rの角度を制御できる。Y軸は、上腕60Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節56Lは、A軸、B軸およびC軸のそれぞれの軸廻りにおいて上腕60Lの角度を制御できる。B軸は、上腕60Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に対して、それぞれ異なる方向から直交する軸である。
【0055】
また、上腕60Rおよび60Lのそれぞれの先端には、肘関節62Rおよび62Lを介して、前腕64Rおよび64Lが設けられる。肘関節62Rおよび62Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕64Rおよび64Lの角度を制御できる。
【0056】
なお、上腕60Rおよび60Lならびに前腕64Rおよび64Lの変位を制御するX軸,Y軸,Z軸,W軸およびA軸,B軸,C軸,D軸では、それぞれ、「0度」がホームポジションであり、このホームポジションでは、図14に示すように、上腕60Rおよび60Lならびに前腕64Rおよび64Lは下方に向けられる。
【0057】
また、図示は省略するが、上部胴体44の肩関節56Rおよび56Lを含む肩の部分や上述の上腕60Rおよび60Lならびに前腕64Rおよび64Lには、それぞれ、タッチセンサ(図15で包括的に示す。:66)が設けられていて、これらのタッチセンサ66は、人26がロボット16の当該各部位に触れたかどうかを検知する。
【0058】
前腕64Rおよび64Lのそれぞれの先端には、手に相当する球体68Rおよび68Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【0059】
上部胴体44の中央上方には、首関節70を介して頭部72が設けられる。首関節70は、3軸の自由度を有し、S軸、T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上(鉛直上向き)に向かう軸であり、T軸およびU軸は、それぞれ、そのS軸に対して異なる方向で直交する軸である。頭部72には、人の口に相当する位置に、スピーカ74が設けられる。スピーカ74は、ロボット16が、それの周辺の人26に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ74は、ロボット16の他の部位、たとえば胴体などに設けられてもよい。
【0060】
また、頭部72には、目に相当する位置に眼球部76Rおよび76Lが設けられる。眼球部76Rおよび76Lは、それぞれ眼カメラ54Rおよび54Lを含む。以下、右の眼球部76Rと左の眼球部76Lとをまとめて眼球部76ということがあり、また、右の眼カメラ54Rと左の眼カメラ54Lとをまとめて眼カメラ54ということもある。
【0061】
眼カメラ54は、ロボット16に接近した人の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ54としては、上述した全方位カメラ50と同様のカメラを用いることができる。
【0062】
たとえば、眼カメラ54は眼球部76内に固定され、眼球部76は眼球支持部(図示せず)を介して頭部72内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部72に対して設けられる軸であり、α軸は頭部72の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部72の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部72がホームポジションにあるとき、α軸はS軸と平行であり、β軸はU軸と平行であるように設定される。眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部76ないし眼カメラ54の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
【0063】
なお、眼カメラ54の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図14に示すように、眼カメラ54のカメラ軸は頭部72の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
【0064】
図15はロボット16の電気的な構成を示すブロック図であり、この図15を参照して、ロボット16は、ロボット16の全体を制御するCPU28を含む。CPU28は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス78を介して、メモリ80、モータ制御ボード82、センサ入力/出力ボード84および音声入力/出力ボード86に接続される。
【0065】
メモリ80は、図示は省略するが、ROM、HDDおよびRAM等を含み、ROMおよびHDDにはロボット16を制御するためのプログラムが予め記憶され、RAMはワークメモリやバッファメモリとして用いられる。プログラムは、位置推定を行うためのプログラム、および人間26との間でインタラクションをする際のコミュニケーション行動を実行するためのプログラム等を含む。また、コミュニケーション行動の実行の際にスピーカ74から出力する音声または声の音声データ(音声合成データ)および所定の身体動作を提示するための角度データ等も記憶される。さらに、HDD等には、ロボット16の初期位置座標(Xr0,Yr0)を示すデータおよび初期角度(向き)θr0を示すデータを含む初期情報が予め記憶される。また、RAMには、ロボットの現在の位置座標(Xr,Yr)を示す現在位置データ領域、および現在の角度θr(向き)を示す現在角度データ領域が設けられる。なお、ロボット16の初期情報を予め記憶せずに、中央コンピュータ12から最初に初期情報を送信させるようにしてもよい。
【0066】
モータ制御ボード82は、たとえばDSPで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。すなわち、モータ制御ボード82は、CPU28からの制御データを受け、右眼球部76Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図15では、まとめて「右眼球モータ」と示す。)88の回転角度を制御する。同様に、モータ制御ボード82は、CPU28からの制御データを受け、左眼球部76Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図15では、まとめて「左眼球モータ」と示す。)90の回転角度を制御する。
【0067】
また、モータ制御ボード82は、CPU28からの制御データを受け、右肩関節56RのX軸、Y軸およびZ軸のそれぞれの角度を制御する3つのモータと右肘関節62RのW軸の角度を制御する1つのモータとの計4つのモータ(図15では、まとめて「右腕モータ」と示す。)92の回転角度を調節する。同様に、モータ制御ボード82は、CPU28からの制御データを受け、左肩関節56LのA軸、B軸およびC軸のそれぞれの角度を制御する3つのモータと左肘関節62LのD軸の角度を制御する1つのモータとの計4つのモータ(図15では、まとめて「左腕モータ」と示す。)94の回転角度を調整する。
【0068】
また、モータ制御ボード82は、CPU28からの制御データを受け、頭部72のS軸、T軸およびU軸のそれぞれの角度を制御する3つのモータ(図15では、まとめて「頭部モータ」と示す。)96の回転角度を制御する。また、モータ制御ボード82は、CPU28からの制御データを受け、腰モータ40の回転角度を制御する。
【0069】
さらに、モータ制御ボード82は、CPU28からの制御データを受けて、2つの車輪30をそれぞれ駆動する2つのモータ(図15では、まとめて「車輪モータ」と示す。)34の回転角度を制御する。具体的には、モータ制御ボード82は、車輪モータ34に設けられるロータリエンコーダ等のような角度センサにも接続されており、角度センサからの出力にも基づいて車輪モータ34の回転を制御する。また、モータ制御ボード82は車輪モータ34の角度センサの出力データをCPU28に与える。
【0070】
なお、この実施例では、車輪モータ34を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ34と同様に、直流モータを用いるようにしてもよい。
【0071】
センサ入力/出力ボード84もまた、同様に、DSPで構成され、各センサからの信号を取り込んでCPU28に与える。すなわち、超音波距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード84を通してCPU28に入力される。また、全方位カメラ50からの映像信号が、必要に応じてこのセンサ入力/出力ボード84で所定の処理を施された後、CPU28に入力される。眼カメラ54からの映像信号も、同様にして、CPU28に入力される。また、上述した複数のタッチセンサ(図15では、まとめて「タッチセンサ66」と示す。)からの信号がセンサ入力/出力ボード84を介してCPU28に与えられる。さらに、上述した衝突センサ36からの信号も、同様にして、CPU28に与えられる。
【0072】
音声入力/出力ボード86もまた、同様に、DSPで構成され、CPU28から与えられる音声合成データに従った音声または声がスピーカ74から出力される。また、マイク52からの音声入力が、音声入力/出力ボード86を介してCPU28に取り込まれる。
【0073】
また、CPU28は、バス78を介して通信LANボード98および読取機18に接続される。通信LANボード98は、DSPで構成され、CPU28から与えられる送信データを無線通信装置100に与えて、無線通信装置100から送信データを、たとえば無線LANのようなネットワークを介して中央コンピュータ12に送信させる。また、通信LANボード98は、無線通信装置100を介してデータを受信し、受信したデータをCPU28に与える。つまり、この通信LANボード98および無線通信装置100を用いて、ロボット16は中央コンピュータ12等と無線通信を行うことができる。読取機18は、上述したように、無線タグ20を検出し、検出情報をCPU28に与える。
【0074】
この実施例では、中央コンピュータ12は、たとえば1秒間隔等の一定周期で、各読取機14から検出情報を取得して、その検出時刻における無線タグ20の位置を推定する。この環境に設置された読取機14の検出情報に基づく推定位置はおおまかな位置である。そこで、ロボット16を移動させて、読取機18を無線タグ20の推定位置に近づける。そして、読取機18で当該無線タグ20を検出することによって、無線タグのより正確な位置を推定する。
【0075】
ここで、無線タグ20の存在位置の推定手法について説明する。上述したように、読取機14で無線タグ20が検出され、区分レベルがLであったとき、その無線タグ20は、その検出時刻tにおいて、図7で斜線で示される領域に存在するものと仮定される。具体的には、この読取機14における無線タグ20の存在仮定領域は、当該読取機14の位置座標(XeN,YeN)を中心とし、受信感度レベルLでの最大検出可能距離dNLおよび受信感度レベルL−1での最大検出可能距離dNL−1をそれぞれ半径とした2つの円の間の領域である。そして、この存在仮定領域において、無線タグ20の存在する確率は一様に分布するものと仮定する。つまり、この存在仮定領域内の各座標(x,y)の確率を総和すると1.0になるように、各座標(x,y)での存在確率が算出される。
【0076】
所定空間24内においては、1つの無線タグ20が、たとえば受信感度レベル3または4程度の所定のレベルで同時に複数の読取機14によって検出されるように、各読取機14が配置されている。つまり、複数の読取機14で1つの無線タグ20が検出される場合に、所定の区分レベルのときの存在仮定領域が、他の読取機14の所定の区分レベルでの存在仮定領域と重なり合う状態になるようにして、複数の読取機14は配置されている。この場合には、無線タグ20の存在する確率は、当該無線タグ20を検出した複数の読取機14の存在仮定領域が最も多く重なり合う部分で最も高くなる。たとえば、図16に示すように、3つの読取機14で同時に無線タグ20が検出されたときには、その検出時刻tにおいて、当該無線タグ20の存在する確率は、3つの存在仮定領域の重なり合う部分(図16の格子線部分)で最も高くなる。また、2つの存在仮定領域の重なり合う部分の確率は、他と重ならない領域の部分の確率よりも高い。
【0077】
具体的に、環境の読取機14による検出情報に基づく推定位置を算出する際には、まず、検出した読取機14ごとに、その存在仮定領域に当該無線タグ20(固有ID=pとする。)が存在する確率を計算する。次に、読取機14ごとに算出された確率を、座標(x,y)ごとに総和する。そして、この総和を、検出した読取機14の数で割ることによって、正規化して、その検出時刻tにおける当該無線タグ(p)が存在する確率P(x,y)を算出する。続いて、算出した確率P(x,y)と、過去の時刻t−1における無線タグ(p)が存在する確率P(t−1,p,x,y)とを、全ての座標(x,y)で足し合わせる。これは時間方向の円滑化処理であり、過去における位置にも基づいて現在の位置を推定している。さらに、この足し合わせによって得られた値を正規化して、時刻tにおける当該無線タグ20の存在する確率P(t,p,x,y)を求める。そして、すべての座標(x,y)と算出した確率P(t,p,x,y)とを用いて、重心の座標(Xp,Yp)を算出する。この重心の座標が当該無線タグ20の推定位置座標である。重心のx座標Xpおよびy座標Ypは、次の数1および数2で算出される。
【0078】
【数1】

【0079】
【数2】

【0080】
ここで、P(x,y)は、座標(x,y)における当該無線タグ(p)の検出時刻tにおける存在確率である。すなわち、重心の座標は、座標とその座標の持つ確率との積をすべての座標に対して行って、総和をとり、この総和の値をすべての座標が持つ確率の総和で割ることによって、決定される。
【0081】
そして、この実施例では、さらにロボット16に搭載した読取機18でその無線タグ20を検出して当該無線タグ20のより正確な位置を推定する。上述した環境の読取機14の検出情報に基づく位置推定処理によって複数の無線タグ20の位置が推定された場合には、複数の無線タグ20の中から目標となる無線タグ20を決定して、この目標タグ20の位置にロボット16を移動させる。その後、ロボット16の読取機18で目標タグ20が検出されたとき、目標タグ20の推定位置座標を算出する。
【0082】
ロボット16の読取機18で目標タグ20が検出された場合には、図17に示すように、環境の読取機14の存在仮定領域のそれぞれが重なり合った部分に、さらにロボット16の読取機18の存在仮定領域が重なった部分において、当該タグの存在確率が最も高くなる。
【0083】
なお、ロボット16の存在仮定領域は、読取機18の位置座標(Xr1,Yr1)を中心とし、長さdrLおよびdrL−1をそれぞれ半径とした2つの円の間の領域である。ここで、長さdrLは、読取機18の検出情報から検出した区分レベルLに対応する最大検出可能距離drLであり、長さdrL−1は、区分レベルLの1段階下のレベル(L−1)に対応する最大検出可能距離drL−1である。上述のように、ロボット16の読取機18の最大検出可能距離drLは、すべてのレベルLで、環境の読取機14の最大検出可能距離dNLよりも小さく設定されている。また、レベルLでの最大検出可能距離drLと、レベルL−1での最大検出可能距離drL−1との差は、どのレベルでも非常に小さく設定されている。このため、ロボット16の読取機18を用いて無線タグ20を検出することによって、存在仮定領域の重なり合う部分をより小さくすることが可能であり、したがって、無線タグ20の位置をより正確に推定することができる。
【0084】
具体的に、ロボット16の読取機18による検出情報に基づく推定位置を算出する際には、まず、検出情報から区分レベルLを検出して、存在仮定領域を決定しておく。次に、読取機18による目標タグ20の検出時刻tにおいて、読取機18の存在仮定領域に目標タグ20(固有ID=aとする。)が存在する確率Pm(t,a,x,y)を算出する。この読取機18の存在仮定領域においても、上述の読取機14の場合と同様に、目標タグ20の存在確率は、一様に分布するものと仮定される。つまり、存在仮定領域内の各座標(x,y)の確率を総和すると1.0になるように、各座標(x,y)での存在確率が算出される。そして、この確率Pm(t,a,x,y)と、環境の読取機14の検出情報に基づいて算出された同時刻tにおける目標タグ20が存在する確率P(t,a,x,y)とを、全ての座標(x,y)で加算する。この加算によって得られた値を正規化して、目標タグ20が存在する確率P(t,a,x,y)を算出する。そして、すべての座標(x,y)と確率P(t,a,x,y)とを用いて重心の座標(Xa,Ya)すなわち推定位置座標を算出する。この目標タグaの重心座標も、上述の数1および数2に従って算出される。
【0085】
図18には、中央コンピュータ12のCPUの動作の一例が示される。まず、ステップS1で、オペレータによる停止命令が生じたか否かを判断する。ステップS1で“YES”であれば、つまり、マウスまたはキーボード等の入力装置から停止を指示するデータが入力された場合には、ステップS3でロボット16に停止命令を送信して、処理を終了する。
【0086】
一方、ステップS1で“NO”であれば、ステップS5で、全ての読取機14から検出情報を取得してRAMに記憶する。このステップS5の検出情報の取得は、周期的に(たとえば1秒間隔で)実行される。図3に示したように、検出情報には、当該読取機の固有ID,検出時刻t、電波受信感度レベルLごとの検出された各無線タグ20の固有ID等が含まれている。続いて、ステップS7で、取得した検出情報に基づいて、無線タグ20ごとに当該無線タグ20に関する情報を抜き出す。そして、図6に示したように、無線タグ固有IDに関連付けて、検出時刻t、検出した読取機の情報(読取機固有IDとその区分レベルL)を記憶したデータをRAMに作成する。区分レベルLは、上述のように、当該無線タグ20の検出の有無を分ける電波受信感度レベルLを検出することによって取得される。
【0087】
そして、ステップS9で、無線タグ20が所定空間24に存在するか否かを判断する。ステップS9で“NO”であれば、つまり、各読取機14からの検出情報に無線タグ固有IDが含まれていなかった場合には、処理はステップS17へ進む。
【0088】
一方、ステップS9で“YES”であれば、ステップS11で無線タグ20ごとの位置推定処理を実行する。この位置推定処理の動作は図19に詳細に示される。
【0089】
図19の最初のステップS31では、処理する無線タグp(p=固有ID)に関する情報をステップS7で生成したデータから取得する。無線タグpに関する情報は、図6に示したように、無線タグ固有IDに関連付けられた、検出時刻t、検出した読取機の情報(読取機固有IDとその区分レベルL)等を含む。複数の無線タグ20が検出された場合、処理するタグpの選択順序は任意であり、たとえばタグ固有IDの順に従って設定される。
【0090】
次に、ステップS33では、当該無線タグpを検出した読取機14ごとに、その存在仮定領域(図7参照)に、当該無線タグpが存在する確率を算出する。なお、各読取機14の位置座標は、読取機14に関する情報(図4)から取得される。また、各読取機14の存在仮定領域を規定する最大検出可能距離dNLおよびdNL−1は、各読取機の区分レベルL(受信感度レベルL)に基づいて、同じく読取機14に関する情報(図4)から取得される。
【0091】
続いて、ステップS35で、読取機14ごとに算出された当該無線タグpが存在する確率を座標(x,y)ごとに総和して、ステップS37で、この総和を、検出した読取機14の数で割ることによって、正規化して、当該無線タグpが存在する確率P(x,y)を算出する。
【0092】
続いて、ステップS39で、算出した当該タグが存在する確率P(x,y)と、過去(前回)の時刻t−1における当該無線タグpが存在する確率P(t−1,p,x,y)とを、全ての座標(x,y)で加算し、ステップS41で、この加算値を正規化して、検出時刻tにおいて、当該無線タグpが存在する確率P(t,p,x,y)を算出する。なお、この値はステップS39の処理で次回の検出時刻での計算に利用されるので、RAMの所定領域に記憶しておく。
【0093】
そして、ステップS43で、全ての座標(x,y)と確率P(t,p,x,y)とを用いて、上記数1および数2に従って、重心の座標(Xp,Yp)を算出する。この重心座標が、当該無線タグpの時刻tにおける推定位置座標である。ステップS43を終了すると、処理は図18のステップS13へ戻る。
【0094】
図18に戻って、ステップS13で、時刻t、無線タグ固有ID,および環境に設置された読取機14による推定位置(Xp,Yp)を推定位置DB22に記録する。つまり、図13に示したように、時刻tに関連付けて、タグ固有IDおよび推定位置座標(Xp,Yp)が記憶され、さらに、その無線タグpを検出した読取機の種別として、環境に設置された読取機14であることを示すデータが記憶される。
【0095】
ステップS15では、全ての無線タグ20を処理したか否かを判断する。ここでは、ステップS7で検出された無線タグ20に関して判断する。ただし、登録されている全無線タグ20に関して判断してもよい。ステップS15で“NO”であれば、ステップS11に戻る。こうして、全ての無線タグ20について位置推定処理を行って、推定位置座標を記録する。
【0096】
ステップS15で“YES”であれば、ステップS17で目標タグ設定処理を実行する。この目標タグ設定処理の動作の一例が図20に詳細に示される。
【0097】
図20の最初のステップS51では、各無線タグ20とロボット16との距離をそれぞれ算出する。各距離は、ステップS13(図18)で推定位置DB22に記憶された当該時刻tにおける各無線タグ20の推定位置座標と、RAMに記憶されているロボット16の現在位置座標を示す現在位置データ(図12参照)とに基づいて算出される。
【0098】
次に、ステップS53で、ロボット16に最も近い距離に存在する無線タグ20を検出して、これを目標タグの候補として選択する。
【0099】
そして、ステップS55で、選択された無線タグ20は、ロボット16の読取機18で既に検出されているか否かを判断する。つまり、タグ履歴データ(図12参照)に、当該選択された無線タグ20の固有IDが記憶されているか否かが判定される。
【0100】
ステップS55で“NO”であれば、ステップS57で当該選択された無線タグ20を目標タグaに設定する。つまり、RAMの目標タグ設定データa(図12)に、当該選択された無線タグ20の固有IDを書き込む。
【0101】
一方、ステップS55で“YES”であれば、ステップS59で、まだ候補として選択されていない無線タグ20が残っているか否かを判断する。ステップS59で“YES”であれば、ステップS61で、残りの無線タグ20のうちロボット16に最も近い距離にいる無線タグ20を検出して、新たに目標タグ候補として選択する。そして、ステップS55に戻る。
【0102】
また、ステップS59で“NO”であれば、つまり、検出された無線タグ20のすべてが既にロボット16の読取機18で検出されている場合には、ステップS63で、ロボット16の読取機18で検出された無線タグ20の履歴を示すタグ履歴データ(図12参照)を初期化する。これによって、すべての無線タグ20を目標タグの候補として選択され得るようにする。ステップS57またはS63を終了すると、処理は図18のステップS19へ戻る。
【0103】
図18のステップS19では、ロボット制御処理を実行する。このロボット制御処理の動作は図21に詳細に示される。
【0104】
図21の最初のステップS71で、目標タグが設定されているか否かを判断する。ステップS71で“YES”であれば、ステップS73で、ロボット16の現在の位置座標および現在の角度データ、ならびに目標タグの推定位置座標に基づいて、ロボット16の向きを目標タグへ向けるための目標角度を算出する。そして、ステップS75で、目標角度および目標タグの推定位置座標(目標座標)をロボット16に送信する。つまり、目標タグaの位置を目標とした移動のための指示をロボット16に与える。ロボット16では、後述するように、この指示に応じて移動する。
【0105】
ステップS75を終了し、または、ステップS71で“NO”であれば、ステップS77で、ロボット16から現在の位置および角度情報を受信したか否かを判断する。ステップS77で“YES”であれば、ステップS79で、RAMに記憶されるロボット16の現在位置データおよび現在角度データを、受信したデータにそれぞれ更新する。
【0106】
ステップS79を終了し、または、ステップS77で“NO”であれば、ステップS81で、ロボット16から検出情報を受信したか否かを判断する。ステップS81で“YES”であれば、ステップS83で、RAMに記憶されるタグ履歴データを更新する。つまり、受信した検出情報に含まれる無線タグ固有IDすなわち目標タグの固有IDを、ロボット16の読取機18で検出されたタグの履歴に追加する。また、検出情報には、図3に示したように、読取機18の固有ID(IDRr)、検出時刻t、検出されたタグの情報(受信感度レベルLごとの検出されたタグ固有ID)等の情報も含まれるので、これらを検出情報から抽出してRAMに記憶する。ステップS83を終了し、またはステップS81で“NO”であれば、処理は図18のステップS21へ戻る。
【0107】
図18のステップS21では、目標タグが検出されたか否かを判断する。つまり、ロボット16から受信した検出情報に、目標タグの固有IDが含まれていたかどうかが判断される。ステップS21で“YES”であれば、ステップS23で、目標タグの位置推定処理を実行する。この目標タグの位置推定処理の動作は図22に詳細に示される。
【0108】
図22の最初のステップS91で、ロボット16の読取機18の存在仮定領域(図17等参照)に目標タグaが存在する確率Pm(t,a,x,y)を計算する。なお、ロボット16の読取機18の位置座標(Xr1,Yr1)は、ロボット16の現在位置データ(Xr,Yr)(図12)と、読取機18のロボット16における設置位置データ(Xrr,Yrr)(図5)とに基づいて算出される。また、存在仮定領域を規定する最大検出可能距離drLおよびdrL−1は、受信した読取機18の検出情報に基づいて検出した区分レベルLに基づいて、読取機18に関する情報(図5)から取得される。
【0109】
続いて、ステップS93で、読取機18で目標タグaが検出された時刻tにおける目標タグaが存在する確率P(t,a,x,y)と、ステップS91で算出された確率Pm(t,a,x,y)とを、全ての座標(x,y)で加算する。なお、時刻tにおける目標タグaが存在する確率P(t,a,x,y)は、ステップS13でそのデータが記録される推定位置DB22から取得される。ステップS95では、その加算値を正規化して、目標タグaが存在する確率P(t,a,x,y)を算出する。そして、ステップS97で、全ての座標(x,y)と確率(t,a,x,y)とを用いて重心の座標(Xa,Ya)を算出する。この重心座標が、目標タグaの時刻tにおける推定位置座標である。ステップS97を終了すると、処理は図18のステップS25へ戻る。
【0110】
図18に戻って、ステップS25では、算出した目標タグaの推定位置座標(Xa,Ya)を推定位置DB22に記録する。つまり、図13に示したように、時刻tに関連付けて、目標タグのタグ固有IDおよび推定位置座標が記憶され、さらに、読取機の種別として、ロボット16に設置された読取機18であることを示すデータが記憶される。
【0111】
ステップS25を終了すると、処理はステップS1へ戻る。また、ステップS21で“NO”である場合、つまり、目標タグaがロボット16の読取機18で検出されていない場合にも、処理はステップS1へ戻る。
【0112】
図23および図24には、無線タグ20の位置推定を行う際の、ロボット16のCPU28の動作の一例が示される。図23の最初のステップS111で、中央コンピュータ12からの停止命令を受信したか否かを判断し、“YES”であればこの処理を終了する。
【0113】
一方、ステップS111で“NO”であれば、ステップS113で、中央コンピュータ12からの目標角度を受信したか否かを判断する。ステップS113で“YES”であれば、受信した目標角度データをメモリ80の所定領域に記憶し、ステップS115で、その目標角度データとメモリ80の現在角度データとに基づいて、現在の角度は目標角度に到達しているか否かを判断する。ステップS115で“NO”であれば、ステップS117で、モータ制御ボード82に車輪モータ34の制御データを送って、ロボット16を一定の角度だけ旋回させる。ステップS117を終了した場合、またはステップS115で“YES”である場合、またはステップS113で“NO”である場合には、ステップS119に進む。
【0114】
ステップS119では、中央コンピュータ12からの目標座標を受信したか否かを判断する。ステップS119で“YES”であれば、受信した目標座標データをメモリ80の所定領域に記憶し、ステップS121で、その目標座標データとメモリ80の現在位置データとに基づいて、現在の位置は目標座標に到達しているか否かを判断する。ステップS121で“NO”であれば、ステップS123で、モータ制御ボード82に車輪モータ34の制御データを送って、ロボット16を一定の距離だけ前進させる。ステップS123を終了した場合、またはステップS121で“YES”である場合、またはステップS119で“NO”である場合には、処理は次の図24のステップS125へ進む。
【0115】
図24のステップS125では、車輪モータ34の角度センサの出力データをモータ制御ボード82から取得して、その出力データとメモリ80に記憶されている現在角度データとに基づいて、現在の角度(ステップS117による旋回後の角度)を算出し、ステップS127でメモリ80の現在角度データを更新する。
【0116】
また、ステップS129で、車輪モータ34の角度センサの出力データと、メモリ80に記憶されている現在位置データとに基づいて、現在の座標(ステップS123による移動後の座標)を算出し、ステップS131でメモリ80の現在位置データを更新する。そして、ステップS133で、中央コンピュータ12に現在の位置情報および角度情報を送信する。
【0117】
また、ステップS135で、ロボット16の読取機18から検出情報をメモリ80に取得する。検出情報には、図3に示したように、当該読取機18の固有ID、検出時刻t、検出されたタグの情報(受信感度レベルLごとの検出されたタグ固有ID)等が含まれている。また、この検出情報の取得もまた、中央コンピュータ12での環境の読取機14からの検出情報の取得と同様に、所定周期(たとえば1秒間隔)で行われる。
【0118】
そして、ステップS137で中央コンピュータ12に検出情報を送信する。このステップS137を終了すると、処理は図23のステップS111へ戻る。
【0119】
この実施例によれば、環境に設置された複数の読取機14によって無線タグ20のおおまかな位置を推定した後、読取機18を搭載したロボット16を目標となる無線タグ20の推定位置へ向けて移動させて、その読取機18で目標タグを検出するようにしたので、無線タグ20の位置をより正確に推定することができる。
【0120】
また、算出された推定位置データは推定位置DB22に記録される。各無線タグ20の推定位置は、図13に示したように、周期的な検出時刻tに関連付けて記録されている。つまり、推定位置データは検出時刻の経過に沿った時系列データでもあり、各無線タグ20の移動軌跡を示している。したがって、このシステム10によれば、無線タグ20の移動の履歴すなわち無線タグ20の装着された人間26の行動履歴を、より正確に記録することができる。
【0121】
さらに、この実施例では、読取機18を移動させるロボット16として、コミュニケーションロボットを適用した。この場合には、この行動履歴データを用いることによって、ロボット16は、無線タグ20を装着した人間26に対して、たとえば、その人間26の行動履歴に基づいたコミュニケーション行動を実行したり、サービスを提供したりすることが可能になる。しかも、このシステム10で記録される行動履歴データ(推定位置データ)は精度が高いので、人間26の行動をより正確に把握することができる。したがって、ロボット16は、無線タグ20を装着した人間26に対して、より的確なコミュニケーションやサービスを提供することができる。
【0122】
なお、上述の実施例では、より正確な位置を推定する目標タグとして、ロボット16に最も近い無線タグ20を選択するという規則を適用するようにしていた。しかしながら、目標タグの選択方法または選択規則はこれに限られるものではなく適宜変更され得る。たとえば、より正確な位置を推定したい1または複数の無線タグ20を予め設定しておき、これらの中から目標タグを選択するようにしてもよい。あるいは、ロボット16に特定の行動をした人間26に装着された無線タグ20、またはロボット16が特定の行動を実行した人間26に装着された無線タグ20などを、目標タグに設定するようにしてもよい。また、たとえば目標タグを所定時間追跡するような場合には、目標タグの位置推定を所定の時間継続して行ったか否かを判定するなど、目標タグを変更する必要があるか否かを判断して、必要がある場合に目標タグ設定処理を実行するようにしてもよい。
【0123】
また、上述の各実施例では、システム10は、中央コンピュータ12とロボット16とによって構成されたが、ロボット16自体が中央コンピュータ12として機能するようにシステム10を構成してもよい。この場合には、ロボット16が移動可能であるように、環境の読取機14とロボット16とは無線LANなど無線によって接続される。
【図面の簡単な説明】
【0124】
【図1】この発明の一実施例の無線タグの位置推定システムの一例を示すブロック図である。
【図2】図1実施例の無線タグの位置推定システムの概要を示す図解図である。
【図3】無線タグ読取機から出力される検出情報の内容の一例を示す図解図である。
【図4】中央コンピュータのメモリに記憶される環境の無線タグ読取機に関する情報の内容の一例を示す図解図である。
【図5】中央コンピュータのメモリに記憶されるロボットの無線タグ読取機に関する情報の内容の一例を示す図解図である。
【図6】検出情報に基づいて無線タグごとに生成される無線タグに関する情報の内容の一例を示す図解図である。
【図7】無線タグ読取機で検出された無線タグの存在仮定領域を示す図解図である。
【図8】無線タグ検出の区分レベルと無線タグ読取機の存在仮定領域との関係の一例を示す図解図である。
【図9】中央コンピュータのメモリに記憶されるロボットの初期情報の内容の一例を示す図解図である。
【図10】ロボットの角度を説明するための図解図である。
【図11】中央コンピュータのメモリに記憶されるユーザ情報の内容の一例を示す図解図である。
【図12】中央コンピュータのRAMのメモリマップの一部を示す図解図である。
【図13】推定位置DBに記憶されるデータの内容の一例を示す図解図である。
【図14】図1実施例で用いられる移動型ロボットの一例を示す外観図である。
【図15】図14のロボットの電気的構成の一例を示すブロック図である。
【図16】環境の無線タグ読取機による無線タグの位置推定を説明するための図解図である。
【図17】環境の無線タグ読取機とロボットの無線タグ読取機とを用いた無線タグの位置推定を説明するための図解図である。
【図18】中央コンピュータの動作の一例を示すフロー図である。
【図19】図18の位置推定処理の動作の一例を示すフロー図である。
【図20】図18の目標タグ設定処理の動作の一例を示すフロー図である。
【図21】図18のロボット制御処理の動作の一例を示すフロー図である。
【図22】図18の目標タグの位置推定処理の動作の一例を示すフロー図である。
【図23】図14のロボットの動作の一例の一部を示すフロー図である。
【図24】図23の続きを示すフロー図である。
【符号の説明】
【0125】
10 …無線タグの位置推定システム
12 …中央コンピュータ
14,18 …無線タグ読取機
16 …移動型ロボット
20 …無線タグ
22 …推定位置DB
24 …所定空間
28 …ロボットのCPU
30 …車輪
34 …車輪モータ
82 …モータ制御ボード

【特許請求の範囲】
【請求項1】
所定の空間における無線タグの位置を移動型ロボットを用いて推定する無線タグの位置推定システムであって、
前記空間の所定の位置にそれぞれ配置されるかつ前記無線タグを検出する複数の第1読取機、
前記複数の第1読取機の前記空間における座標を示す位置データを記憶する位置データ記憶手段、
前記複数の第1読取機のそれぞれの検出情報を取得する第1取得手段、
検出された無線タグごとに、当該無線タグを検出した第1読取機の位置データおよび受信電波強度に関する情報に基づいて、検出時刻における当該無線タグの位置を推定する第1推定手段、
前記第1推定手段によってその位置が推定された無線タグを目標として、前記移動型ロボットの移動を制御する移動制御手段、
前記移動型ロボットに設けられるかつ前記無線タグを検出する第2読取機、
前記第2読取機の前記空間における座標を示す位置データを算出する位置算出手段、
前記第2読取機の検出情報を取得する第2取得手段、
前記移動の目標とされた無線タグが前記第2読取機によって検出されたとき、少なくとも前記第2読取機の位置データおよび受信電波強度に関する情報を用いて、当該検出時刻における当該無線タグの位置を推定する第2推定手段を備える、無線タグの位置推定システム。
【請求項2】
前記第1推定手段によってそれぞれの位置が推定された複数の無線タグの中から前記移動の目標とする無線タグを選択する選択手段をさらに備える、請求項1記載の無線タグの位置推定システム。
【請求項3】
前記第2推定手段によって推定された無線タグの位置をその検出時刻に関連付けて記憶する推定位置記憶手段をさらに備える、請求項1または2記載の無線タグの位置推定システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2006−127355(P2006−127355A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−317694(P2004−317694)
【出願日】平成16年11月1日(2004.11.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成16年6月1日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「ネットワーク・ヒューマン・インターフェースの総合的な研究開発(ネットワークロボットの技術)」に関する委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】