(57)【要約】  【構成】無線タグの位置推定システムは、所定空間に配置された複数の無線タグ読取機１４を含む。この所定空間に配置された読取機１４による検出に基づいて、その検出時刻における所定空間内の無線タグの位置が推定される。その位置の推定された無線タグを目標として移動型ロボット１６の移動が制御させる。移動型ロボット１６には無線タグ読取機１８が設けられている。この読取機１８によって目標とされた無線タグが検出されたとき、読取機１８による検出に基づいて、当該検出時刻における当該無線タグの推定位置座標が算出されて記録される。  【効果】無線タグの位置をより正確に推定することができる。【選択図】  図１７
2006127355.tif 000002
【特許請求の範囲】
【請求項１】
所定の空間における無線タグの位置を移動型ロボットを用いて推定する無線タグの位置推定システムであって、
前記空間の所定の位置にそれぞれ配置されるかつ前記無線タグを検出する複数の第１読取機、
前記複数の第１読取機の前記空間における座標を示す位置データを記憶する位置データ記憶手段、
前記複数の第１読取機のそれぞれの検出情報を取得する第１取得手段、
検出された無線タグごとに、当該無線タグを検出した第１読取機の位置データおよび受信電波強度に関する情報に基づいて、検出時刻における当該無線タグの位置を推定する第１推定手段、
前記第１推定手段によってその位置が推定された無線タグを目標として、前記移動型ロボットの移動を制御する移動制御手段、
前記移動型ロボットに設けられるかつ前記無線タグを検出する第２読取機、
前記第２読取機の前記空間における座標を示す位置データを算出する位置算出手段、
前記第２読取機の検出情報を取得する第２取得手段、
前記移動の目標とされた無線タグが前記第２読取機によって検出されたとき、少なくとも前記第２読取機の位置データおよび受信電波強度に関する情報を用いて、当該検出時刻における当該無線タグの位置を推定する第２推定手段を備える、無線タグの位置推定システム。
【請求項２】
前記第１推定手段によってそれぞれの位置が推定された複数の無線タグの中から前記移動の目標とする無線タグを選択する選択手段をさらに備える、請求項１記載の無線タグの位置推定システム。
【請求項３】
前記第２推定手段によって推定された無線タグの位置をその検出時刻に関連付けて記憶する推定位置記憶手段をさらに備える、請求項１または２記載の無線タグの位置推定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は無線タグの位置推定システムに関し、特にたとえば、所定空間における無線タグの位置を移動型ロボットを用いて推定する、無線タグの位置推定システムに関する。
【背景技術】
【０００２】
たとえば本件出願人による特許文献１には、無線タグから発せられる電波の受信強度を用いて単体の無線タグ読取機からその無線タグがどの程度はなれているかを検出する技術の一例が開示されている。
【０００３】
また、複数の無線タグ読取機を用いれば、無線タグのおおまかな存在領域を把握することも可能であり、たとえば三角測量の手法によって無線タグのおおまかな存在場所を推定することもできる。
【特許文献１】特開２００４−２１６５１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
さらに解像度を向上させるために、無線タグ読取機の台数を増やすことが考えられるが、回り込みや反射などの電波の特性上、誤差が大きいため実効が上がらない。たとえば複数の無線タグ読取機を１０ｃｍ程度の極短い間隔で敷き詰めれば、精度よく無線タグの位置を推定することも可能になると考えられる。しかしながら、無線タグ読取機は非常に高価であり、また、空間内に多数の無線タグ読取機を設置することも困難であるため、実用に適さない。
【０００５】
それゆえに、この発明の主たる目的は、無線タグの位置を精度よく推定することができる、無線タグの位置推定システムを提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、所定の空間における無線タグの位置を移動型ロボットを用いて推定する無線タグの位置推定システムであって、空間の所定の位置にそれぞれ配置されるかつ無線タグを検出する複数の第１読取機、複数の第１読取機の空間における座標を示す位置データを記憶する位置データ記憶手段、複数の第１読取機のそれぞれの検出情報を取得する第１取得手段、検出された無線タグごとに、当該無線タグを検出した第１読取機の位置データおよび受信電波強度に関する情報に基づいて、検出時刻における当該無線タグの位置を推定する第１推定手段、第１推定手段によってその位置が推定された無線タグを目標として、移動型ロボットの移動を制御する移動制御手段、移動型ロボットに設けられるかつ無線タグを検出する第２読取機、第２読取機の空間における座標を示す位置データを算出する位置算出手段、第２読取機の検出情報を取得する第２取得手段、移動の目標とされた無線タグが第２読取機によって検出されたとき、少なくとも第２読取機の位置データおよび受信電波強度に関する情報を用いて、当該検出時刻における当該無線タグの位置を推定する第２推定手段を備える、無線タグの位置推定システムである。
【０００７】
請求項１の発明では、無線タグの位置推定システムは、無線タグを検出する複数の第１読取機を含み、複数の第１読取機は所定の空間において所定の位置にそれぞれ配置される。位置データ記憶手段は、複数の第１読取機の所定空間における位置座標を記憶している。第１取得手段は複数の第１読取機のそれぞれの検出情報を取得する。第１推定手段は、検出された無線タグごとに、その検出時刻における位置を推定する。この推定は、当該無線タグを検出した第１読取機の位置データおよび受信電波強度に基づいてなされる。移動制御手段は、位置の推定された無線タグを目標として、移動型ロボットの移動を制御する。移動型ロボットには第２読取機が設けられていて、第２読取機の検出情報は第２取得手段によって取得される。位置算出手段は第２読取機の所定空間における座標を算出する。第２推定手段は、移動の目標とされた無線タグが第２読取機によって検出されたとき、少なくとも第２読取機の位置データおよび受信電波強度に関する情報を用いて、当該検出時刻における当該無線タグの位置を推定する。
【０００８】
したがって、請求項１の発明によれば、所定空間に配置された複数の第１読取機による検出に基づいて無線タグのおおまかな位置を推定した後に、その推定位置を目標に移動型ロボットを移動させることによって第２読取機でその無線タグを検出するようにしたので、無線タグのより正確な位置を推定することができる。
【０００９】
請求項２の発明は、請求項１の発明に従属し、第１推定手段によってそれぞれの位置が推定された複数の無線タグの中から移動の目標とする無線タグを選択する選択手段をさらに備える。
【００１０】
請求項２の発明では、複数の無線タグの位置が推定された場合に、選択手段が移動の目標とする無線タグを選択する。これによって、移動制御手段は選択された無線タグを目標として移動型ロボットの移動を制御する。したがって、目標として選択した無線タグの位置をより正確に推定することができる。
【００１１】
請求項３の発明は、請求項１または２の発明に従属し、第２推定手段によって推定された無線タグの位置をその検出時刻に関連付けて記憶する推定位置記憶手段をさらに備える。
【００１２】
請求項３の発明では、推定位置記憶手段が検出時刻に関連付けて無線タグの推定位置を記憶するので、無線タグのより正確な移動の履歴を記録することができる。
【発明の効果】
【００１３】
この発明によれば、複数の読取機によって検出した情報に基づいて無線タグのおおまかな位置を推定した後、その推定位置の付近へ移動型ロボットを移動させて、ロボットに搭載された読取機でその無線タグを検出し、その検出した情報に基づいて位置を推定するようにしたので、無線タグのより正確な位置を推定することができる。
【００１４】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１５】
図１を参照して、この実施例の無線タグの位置推定システム（以下、単に「システム」という。）１０は、このシステム１０を全体的に制御する中央コンピュータ１２および環境に設置される複数の無線タグ読取機（以下、単に「読取機」という。）１４を含む。このシステム１０はさらに移動型ロボット（以下、単に「ロボット」という。）１６を含み、このロボット１６にも読取機１８が設けられる。また、中央コンピュータ１２の内部または外部には、無線タグ２０の推定位置が格納される推定位置データベース（ＤＢ）２２が設けられる。中央コンピュータ１２には、たとえばＲＳ２３２Ｃのような汎用インタフェースを介して複数の読取機１４が接続される。また、中央コンピュータ１２と移動型ロボット１６とは無線ＬＡＮなどを介して接続される。なお、複数の読取機１４は無線ＬＡＮなどを介して中央コンピュータ１２と接続されてもよい。
【００１６】
さらに図２も参照して、このシステム１０は、所定の空間２４における無線タグ２０の位置を推定するためのものである。所定の空間２４は、一例として、博物館や科学館のような展示環境や学校の教室等が考えられる。無線タグ２０は空間２４に存在するまたはこの空間２４を訪問する人間２６に取り付けられる。このシステム１０は、換言すれば、空間２４において自由に移動する人間２６の位置を推定しようとするものでもある。
【００１７】
複数の読取機１４のそれぞれは、空間２４内における無線タグ２０を検出可能となるように、空間２４内の所定の位置に固定的に配置される。望ましくは、無線タグ２０が空間２４内のどの位置に存在しても、少なくとも３つの読取機１４で検出されるように、複数の読取機１４は配置される。この場合、環境に設置された読取機１４の検出情報に基づいて、三角測量の手法によって無線タグ２０のおおまかな位置を推定することができる。
【００１８】
また、ロボット１６は、処理を開始する前に、空間２４内の所定の位置に所定の向き（角度）で配置される。ロボット１６の読取機１８は、ロボット１６の所定の位置に固定的に配置されている。
【００１９】
なお、無線タグ２０としてはＲＦＩＤタグが使用される。ＲＦＩＤ（Radio Frequency Identification）は、電磁波を利用した非接触ＩＣタグによる自動認識技術のことである。ＲＦＩＤタグは、識別情報用のメモリや通信用の制御回路等を備えるＩＣチップおよびアンテナ等を含む。そのメモリには、タグ固有識別情報等が予め記憶され、その識別情報等が所定周波数の電磁波・電波等によってアンテナから所定の時間間隔で出力される。この実施例では、すべての無線タグ２０の送信電波強度は同一に設定される。
【００２０】
なお、伝送方式としては、この実施例では、空間２４内における無線タグ２０の位置を推定するので、たとえば、交信距離の比較的長いマイクロ波方式（最大５ｍ程度)のものを使用することができる。また、電源の方式は、適切な交信距離領域を確保するため、電池内蔵の能動型を用いるのが望ましい。また、タグの形態ないし形状は任意であり、たとえばカード形、ラベル形、コイン形、スティック形などであってよい。
【００２１】
読取機１４および１８は、この実施例では、ＲＦＩＤタグからの出力情報を検出するものである。具体的には、読取機１４および１８はアンテナを含み、ＲＦＩＤタグから送信される識別情報の重畳された電波をアンテナを介して受信する。そして、受信した電波信号を増幅し、当該電波信号から識別情報を分離し、当該情報を復調（デコード）する。
【００２２】
この読取機１４および１８では、電波受信感度（アンテナ感度）を段階的に（この実施例では８段階で）調節することが可能になっていて、これにより、無線タグ２０の最大検出可能距離（感知範囲）をたとえば８段階で設定することができる。たとえば受信感度レベルＬが８のときに最も広い感知範囲となり、受信感度レベルＬが１のときに最も狭い感知範囲となる。そして、読取機１４および１８は、検出時刻において、電波受信感度（読み取り強度）の設定レベルＬを自動的に変更しつつ無線タグ２０の読み取りを行い、その検出時刻における全レベルでの読み取りの結果を出力することができる。
【００２３】
読取機１４および１８は、たとえば図３に示すような検出情報を出力する。検出情報には、自己の読取機固有ＩＤ（識別情報）、検出時刻ｔ、および検出された無線タグ２０の情報を含む。検出された無線タグ２０の情報は、全受信感度レベルでの読み取り結果であり、受信感度レベルＬに関連付けてそのレベルＬで検出された無線タグ２０の固有ＩＤが記憶されている。複数の無線タグ２０が検出された場合には、複数のタグ固有ＩＤが記憶される。また、無線タグ２０が検出されなかった場合には、当該受信感度レベルＬに関連付けてたとえば検出なしを示すデータが記述される。なお、読取機１４はこの検出情報を中央コンピュータ１２のＣＰＵに与え、読取機１８はこの検出情報をロボット１６のＣＰＵ２８（図１５）に与える。
【００２４】
そして、この実施例では、すべての無線タグ２０の送信電波強度は同一に設定されているので、このように読取機１４および１８で最大検出可能距離（感知範囲）を段階的に変更しつつ読み取りを行うことによって、無線タグ２０が存在すると仮定する領域を把握することが可能になる。たとえば受信感度レベルがＬのときに検出されている無線タグ２０が、１段階下のレベルＬ−１のときに検出されていない場合、その無線タグ２０はレベルＬ−１での最大検出可能距離からレベルＬでの最大検出可能距離までの間の領域に存在すると仮定することができる。この存在仮定領域については図７を参照して後述する。
【００２５】
また、この電波受信感度の設定レベルＬに基づいて、無線タグ２０から出力された電波の受信強度（受信電波強度）を把握することが可能である。上述のようにすべての無線タグ２０の送信電波強度は同一であるので、たとえば最も感度の高い設定レベル（Ｌ＝８）になってはじめて無線タグ２０が検出される場合には、当該無線タグ２０は感知範囲が最大になってはじめて検出されるので、検出される無線タグ２０の中では読取機１４および１８から最も遠い範囲に存在しており、その受信電波強度は最も弱いものとなる。一方、最も感度の低い設定レベル（Ｌ＝１）、すなわち、最小の感知範囲になっても無線タグ２０が検出される場合には、当該無線タグ２０は、検出される無線タグ２０の中では読取機１４および１８に最も近い範囲に存在しており、その受信電波強度は最も強い。このように、電波受信感度の設定レベルＬごとの無線タグ２０の検出の有無に基づいて、無線タグ２０の受信電波強度を段階的に（この実施例では８段階で）検出することが可能である。
【００２６】
なお、読取機１４および１８の電波受信感度のレベルＬに対応する最大検出可能距離は、個体差があるため、それぞれの読取機１４および１８ごとに実験によって予め計測されている。
【００２７】
また、この実施例では、読取機１４および１８から検出時刻ｔを出力するようにしているが、他の実施例では、中央コンピュータ１２およびロボット１６にタイマを設けて検出時刻ｔをカウントするようにしてもよい。
【００２８】
また、製品の一例として、無線タグ２０にはＲＦ  Ｃｏｄｅ社（http://www.rfcode.com/）の「ＳＰＩＤＥＲ（商標）」タグを使用することができ、読取機１４および１８には同社の「ＳＰＩＤＥＲ（商標）」リーダを使用することができる。これらは３０３．８MHzの極超短波帯の電波を使用している。
【００２９】
中央コンピュータ１２は、パーソナルコンピュータやワークステーションのようなコンピュータであり、ＣＰＵおよびメモリなどを含む。メモリはＲＯＭ、ＨＤＤおよびＲＡＭなどを含む。ＲＯＭないしＨＤＤにはこのシステム１０の全体的な動作を制御するために必要なプログラムおよびデータが記憶されていて、ＣＰＵはこのプログラムに従って処理を実行する。ＲＡＭはＣＰＵの作業領域またはバッファ領域として使用され、ＣＰＵの処理によって生成されまたは取得されたデータが記憶される。また、ＣＰＵには、たとえば無線ＬＡＮ、インタネットのようなネットワークを介して、外部のコンピュータと無線または有線で通信するための通信装置が接続されている。ＣＰＵは、この通信装置および無線ＬＡＮを介してロボット１６と無線通信をする。さらに、ＣＰＵには、複数の読取機１４が汎用インタフェースを介して接続される。
【００３０】
なお、図１では、複数の読取機１４のすべてが１つの中央コンピュータ１２に接続された場合を示したが、中央コンピュータ１２または複数の読取機１４を担当する複数のコンピュータによって構成されてもよい。この場合、各コンピュータは、読取機１４で検出した情報を含むデータを通信装置を介してメインとなる１つのコンピュータに送信し、このメインコンピュータが受信したデータに基づいて位置推定のための処理を実行する。
【００３１】
図４には、中央コンピュータ１２のメモリに記憶されている読取機１４に関する情報の内容の一例が示される。このデータには、読取機固有ＩＤ（ＩＤＲ１〜ＩＤＲｎ）に関連付けて、各読取機１４の空間２４における設置位置の座標（ＸｅＮ，ＹｅＮ）、および電波受信感度レベルＬごとの最大検出可能距離ｄＮＬが登録されている（Ｎ＝１〜ｎ）。なお、この図４において環境に設置される読取機１４の数を示す所定値ｎは、図１１においてユーザ数（タグ数）を示す所定値ｎとは無関係に設定されるものであり、両者の値が同一であることを意味するものではない。電波受信感度レベルＬごとの最大検出可能距離は、すべての読取機１４ごとに予め実験によって測定された値が登録される。
【００３２】
読取機１４から取得される検出情報には、上述のように、読取機固有ＩＤと電波受信感度レベルＬの情報が含まれるので、中央コンピュータ１２は、このデータを参照することによって、その読取機１４の設置位置の座標と各レベルＬでの最大検出可能距離を把握できる。
【００３３】
なお、所定空間２４における位置データは、図２に示すようにＸＹ２次元平面座標系で表され、この実施例では鉛直方向（Ｚ軸）の座標は設定されない。また、この空間２４の２次元ＸＹ平面の各座標（ｘ，ｙ）は任意に設定されてよいが、たとえば１ｃｍを単位長さとして定められてよい。
【００３４】
図５には、中央コンピュータ１２のメモリに記憶されている読取機１８に関する情報の内容の一例が示される。このデータには、読取機固有ＩＤ（ＩＤＲｒ）に関連付けて、読取機１８のロボット１６における設置位置の座標（Ｘｒｒ，Ｙｒｒ）、および電波受信感度レベルＬごとの最大検出可能距離ｄｒＬが登録されている。なお、読取機１８のロボット１６における設置位置座標（Ｘｒｒ，Ｙｒｒ）は、ロボット１６の空間２４における位置座標（Ｘｒ，Ｙｒ）（たとえばロボット１６の中心位置）からのずれを示すものであり、ロボット１６の現在位置が把握されたときに読取機１８の現在位置（Ｘｒ１，Ｙｒ１）も把握される。また、この読取機１８の電波受信感度レベルＬごとの最大検出可能距離も、予め実験によって測定された値が登録されている。中央コンピュータ１２は、読取機１８からの検出情報（図３）をロボット１６から取得したとき、その情報に含まれる読取機固有ＩＤおよび電波受信感度レベルＬに基づいて、このデータを参照することによって、読取機１８の現在の座標を算出することができるとともに、各電波受信感度レベルＬでの最大検出可能距離を把握できる。
【００３５】
図６には、中央コンピュータ１２で生成されるタグに関する情報の内容の一例が示される。中央コンピュータ１２のＣＰＵは、すべての読取機１４の検出情報に基づいて、タグごとに、このタグに関する情報を生成する。このタグに関する情報には、無線タグ２０のタグ固有ＩＤに関連付けて、検出時刻ｔ、および当該タグを検出した読取機の情報が記憶される。この読取機の情報には、当該タグを検出した読取機１４の読取機固有ＩＤに対応づけて、区分レベルが記憶される。
【００３６】
この区分レベルは、当該無線タグ２０の検出の有無を区分する電波受信感度レベルＬである。上述のように、当該無線タグ２０について、あるレベルＬまでは検出されるがその１段階下のレベルＬ−１では検出されないような場合があるので、このような当該無線タグ２０の検出の有無を分ける電波受信感度レベルＬを検出して、当該電波受信感度レベルＬを区分レベルＬとして設定する。なお、電波受信感度レベルＬが１のときでも当該無線タグ２０が検出されている場合には、区分レベルは１とされる。
【００３７】
図７には、区分レベルによって仮定できる無線タグ２０の存在仮定領域が示される。ある読取機Ｎの検出情報から検出された区分レベルがＬであった場合、つまり、受信感度レベルがＬのときに検出されている無線タグ２０が、１段階下のレベルＬ−１のときには検出されていない場合、その無線タグ２０は、読取機Ｎの位置座標（ＸｅＮ，ＹｅＮ）からレベルＬ−１での最大検出可能距離ｄＮＬ−１までの領域には存在しないが、その外側のレベルＬでの最大検出可能距離ｄＮＬまでの領域には存在すると仮定することができる。つまり、その無線タグ２０は、読取機Ｎの位置座標（ＸｅＮ，ＹｅＮ）を中心とし、長さｄＮＬおよびｄＮＬ−１をそれぞれ半径とした２つの円の間の領域（斜線部分。図７の式（１）で示される。）に存在すると仮定できる。
【００３８】
このように、区分レベルＬによって、無線タグ２０の存在仮定領域がどの範囲になるかが決まる。たとえば、区分レベルＬが１であるときは、受信感度レベルＬが１になっても無線タグ２０が検出されるので、存在仮定領域は読取機Ｎに最も近い範囲となる。また、区分レベルＬが８であるときは、受信感度レベルＬが８になってはじめて無線タグが検出されるので、存在仮定領域は読取機Ｎに最も遠い範囲となる。
【００３９】
また、区分レベルＬは受信電波強度のレベルにも対応するものであるといえる。つまり、区分レベルＬが１であるときは、無線タグ２０は読取機Ｎに最も近い範囲に存在するので、その受信電波強度のレベルは最大であり、一方、区分レベルＬが８であるときは、無線タグ２０は読取機Ｎに最も遠い範囲に存在するので、その受信電波強度のレベルは最小である。このように、区分レベルＬは、受信電波強度に関する情報を含んだものでもある。
【００４０】
なお、図７では、環境に設置される読取機１４の位置座標（ＸｅＮ，ＹｅＮ）と最大検出可能距離ｄＮＬとを用いて、存在仮定領域について示したが、ロボット１６に搭載される読取機１８の存在仮定領域も同様にして決められるのは言うまでもない。
【００４１】
図８には、区分レベルＬと存在仮定領域との関係の一例を示す。これらは実験によって得られた値である。また、上述のように読取機ごとに個体差があるので、図８の数値は一例に過ぎない。たとえば、環境に設置される読取機１４では、区分レベルＬが「４」であった場合、読取機１４の位置座標からの距離が１００ｃｍから１５０ｃｍまでの間の領域が存在仮定領域となる。また、ロボット１６に搭載される読取機１８では、区分レベルＬが「４」であった場合、読取機１４の位置座標からの距離が４０から６０ｃｍまでの間の領域が存在仮定領域となる。
【００４２】
ロボット１６に搭載される読取機１８としては、その最大検出可能距離が、各レベルＬにおいて環境に設置される各読取機１４の最大検出可能距離よりも小さいものを使用する。つまり、読取機１８は、全てのレベルで読取機１４よりも狭い感知範囲を有する。そして、このような読取機１８では、図８に一例を示すように、区分レベルＬごとの存在仮定領域を、非常に小さく設定することができる。したがって、ロボット１６の読取機１８で無線タグ２０を検出することによって、無線タグ２０が存在していると推定される範囲を小さくすることができるので、その無線タグ２０の存在する位置をより精度よく推定することが可能になる。たとえば、環境の読取機１４のみによる位置推定の誤差が数〜十数ｍであるときでも、ロボット１６を用いることによって、誤差を数十ｃｍ以下にすることが可能である。このように、移動型ロボット１６を用いることによって、環境内に非常に狭い密度で読取機１４を配置するようなことなく最低限必要な数の読取機１４を配置するだけで、精度の良い位置推定を行うことができる。この実施例では、環境に設置される読取機１４の設置間隔は、場所にもよるが、およそ４ｍ〜８ｍ程度でよい。
【００４３】
図９には、中央コンピュータ１２のメモリに記憶されるロボット１６の初期情報の内容の一例が示される。このデータには、ロボット１６の空間２４における初期位置座標（Ｘｒ０，Ｙｒ０）およびロボット１６の初期角度θｒ０が登録される。ロボット１６は、処理を開始する前に、所定空間２４内において、初期位置座標に初期角度で配置される。ロボット１６の角度は、図１０に示すように、ロボット１６の向きを表すものである。具体的には、図１０では、上から見たロボット１６が示される。一点鎖線はロボット１６の左右方向の軸を示し、後述するロボット１６の２つの車輪３０（図１４）の軸でもある。この左右方向軸と直交する矢印は、ロボット１６の正面側を指している。ロボットの角度θｒは、破線で示されるＹ軸の正側とロボット１６の正面側を示す矢印とが成す角度（Ｚ軸の反時計回り方向が正方向）である。
【００４４】
なお、この実施例では、後述するように、ロボット１６の内界センサ（車輪モータ３４の角度センサ）の出力に基づいて、ロボット１６の現在位置および現在角度を把握するようにしている。詳しくは、この実施例では、現在位置および現在角度の情報は、ロボット１６で算出され中央コンピュータ１２に送信される。しかしながら、ロボット１６の現在位置および現在角度は、たとえば所定空間２４の天井等に設置した複数のカメラなどのような外界センサから得られる情報に基づいて算出されてもよい。この場合には、初期設定処理として、中央コンピュータ１２が外界センサの出力を取得して、ロボット１６の初期位置および初期角度を算出するとともにロボット１６に送信することが可能であるので、ロボット１６の初期情報は、中央コンピュータ１２およびロボット１６に予め記憶されなくてもよい。
【００４５】
図１１には、中央コンピュータ１２のメモリに記憶されるユーザ情報の内容の一例が示される。このデータには、ユーザＩＤ（ＩＤＵ１〜ＩＤＵｎ）に関連付けて、そのユーザ２６に取り付けられる無線タグ２０の識別情報（無線タグ固有ＩＤ：ＩＤＴ１〜ＩＤＴｎ）、およびそのユーザ名などのユーザに関する情報が登録される。中央コンピュータ１２は、取得した無線タグ固有ＩＤに基づいてこのデータを参照することによって、検出された人間２６を特定することができる。
【００４６】
図１２には、中央コンピュータ１２のＲＡＭに一時記憶されるデータの一部が示される。ロボット１６に関するデータは、ロボット１６の現在位置の座標（Ｘｒ，Ｙｒ）示す現在位置データ、およびロボット１６の現在の角度θｒを示す現在角度データを含む。現在位置データおよび現在角度データの初期値は、たとえばＨＤＤに登録されているロボットの初期情報（図９参照）の値が設定される。タグ履歴データは、ロボット１６の読取機１８で検出された無線タグ２０の履歴を示すものであり、このデータには、検出された無線タグ２０の固有ＩＤが記憶される。また、目標タグ設定データには、目標タグに設定された無線タグの固有ＩＤが記憶される。このデータは、たとえば目標タグに設定された無線タグ２０がロボット１６の読取機１８で検出されたとき初期化される。あるいは、目標タグを追跡するような場合には、目標タグの位置推定を所定の時間継続して行ったと判断されたとき等に、この目標タグ設定データを初期化するようにしてもよい。
【００４７】
中央コンピュータ１２は算出した推定位置を推定位置ＤＢ２２に記憶する。図１３には、推定位置ＤＢ２２に記憶される推定位置データの内容の一例が示される。推定位置ＤＢ２２には、検出時刻ｔに関連付けて、無線タグ２０のタグ固有ＩＤおよびその推定位置座標、ならびに読取機の種別等が記憶される。読取機の種別は、その推定位置座標の精度を区別するためのものである。つまり、環境に設置された読取機１４の検出情報のみに基づいて算出されたおおまかな精度の推定位置（Ｘｐ，Ｙｐ）である場合には、環境を示すデータが記述され、読取機１４およびロボット１６に設置された読取機１８の両方の検出情報に基づいて算出された良い精度の推定位置（Ｘａ，Ｙａ）である場合には、ロボットを示すデータが記述される。この図１３の例では、時刻ｔ０において、識別情報のＩＤＴ１である無線タグ２０の環境の読取機１４による推定位置座標は（Ｘｐ１，Ｙｐ１）であることが記録されている。また、時刻ｔ１においては、識別情報のＩＤＴ１である無線タグ２０の環境の読取機１４による推定位置座標は（Ｘｐ１，Ｙｐ１）であることと、識別情報のＩＤＴ１である無線タグ無線タグ２０のロボット１６の読取機１８による推定位置座標は（Ｘａ１，Ｙａ１）であることとが記録されている。
【００４８】
読取機１８の搭載されるロボット１６の一例が図１４に示される。この実施例では、ロボット１６として、身振りおよび音声によって人間２６とコミュニケーションを図る機能を備えたコミュニケーションロボットが使用される。
【００４９】
具体的には、ロボット１６は台車３２を含み、この台車３２の下面にはロボット１６を自律移動させる２つの車輪３０が設けられる。２つの車輪３０は車輪モータ３４（図１５）によって独立駆動され、台車３２すなわちロボット１６を前後左右任意の方向に動かすことができる。
【００５０】
なお、図１４においては省略するが、台車３２の前面には、衝突センサ３６（図１５）が取り付けられ、この衝突センサ３６は台車３２への人２６や他の障害物の接触を検知する。つまり、ロボット１６の移動中に障害物との接触を検知すると、直ちに車輪３０の駆動を停止してロボット１６の移動を急停止させることが可能である。
【００５１】
台車３２の上には、多角形柱のセンサ取付パネル３８が設けられ、このセンサ取付パネル３８の各面には、超音波距離センサ４０が取り付けられる。この超音波距離センサ４０は、センサ取付パネル３８すなわちロボット１６の周囲の主として人２６との距離を計測するものである。
【００５２】
また、台車３２の上には、さらに、その下部がセンサ取付パネル３８に囲まれて、ロボット１６の胴体が直立するように設けられる。この胴体は、下部胴体４２と上部胴体４４とによって構成され、下部胴体４２および上部胴体４４は、連結部４６によって互いに連結される。図示は省略するが、連結部４６には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体４４の高さすなわちロボット１６の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ４８（図１５）によって駆動される。
【００５３】
上部胴体４４のほぼ中央には、１つの全方位カメラ５０と１つのマイク５２とが設けられる。全方位カメラ５０は、ロボット１６の周囲を撮影するものであり、後述する眼カメラ５４とは区別される。この全方位カメラ５０としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。また、マイク５２は、周囲の音、とりわけコミュニケーション対象である人２６の声を取り込む。なお、これら全方位カメラ５０およびマイク５２の設置位置は上部胴体４４に限られず適宜変更され得る。
【００５４】
上部胴体４４の両肩には、肩関節５６Ｒおよび５６Ｌによって、腕５８Ｒおよび５８Ｌが設けられる。腕５８Ｒおよび５８Ｌは、上腕６０Ｒおよび６０Ｌを含む。肩関節５６Ｒおよび５６Ｌは、それぞれ、３軸の自由度を有する。すなわち、肩関節５６Ｒは、Ｘ軸、Ｙ軸およびＺ軸のそれぞれの軸廻りにおいて上腕６０Ｒの角度を制御できる。Ｙ軸は、上腕６０Ｒの長手方向（または軸）に平行な軸であり、Ｘ軸およびＺ軸は、そのＹ軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節５６Ｌは、Ａ軸、Ｂ軸およびＣ軸のそれぞれの軸廻りにおいて上腕６０Ｌの角度を制御できる。Ｂ軸は、上腕６０Ｌの長手方向（または軸）に平行な軸であり、Ａ軸およびＣ軸は、そのＢ軸に対して、それぞれ異なる方向から直交する軸である。
【００５５】
また、上腕６０Ｒおよび６０Ｌのそれぞれの先端には、肘関節６２Ｒおよび６２Ｌを介して、前腕６４Ｒおよび６４Ｌが設けられる。肘関節６２Ｒおよび６２Ｌは、それぞれ、Ｗ軸およびＤ軸の軸廻りにおいて、前腕６４Ｒおよび６４Ｌの角度を制御できる。
【００５６】
なお、上腕６０Ｒおよび６０Ｌならびに前腕６４Ｒおよび６４Ｌの変位を制御するＸ軸，Ｙ軸，Ｚ軸，Ｗ軸およびＡ軸，Ｂ軸，Ｃ軸，Ｄ軸では、それぞれ、「０度」がホームポジションであり、このホームポジションでは、図１４に示すように、上腕６０Ｒおよび６０Ｌならびに前腕６４Ｒおよび６４Ｌは下方に向けられる。
【００５７】
また、図示は省略するが、上部胴体４４の肩関節５６Ｒおよび５６Ｌを含む肩の部分や上述の上腕６０Ｒおよび６０Ｌならびに前腕６４Ｒおよび６４Ｌには、それぞれ、タッチセンサ（図１５で包括的に示す。：６６）が設けられていて、これらのタッチセンサ６６は、人２６がロボット１６の当該各部位に触れたかどうかを検知する。
【００５８】
前腕６４Ｒおよび６４Ｌのそれぞれの先端には、手に相当する球体６８Ｒおよび６８Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【００５９】
上部胴体４４の中央上方には、首関節７０を介して頭部７２が設けられる。首関節７０は、３軸の自由度を有し、Ｓ軸、Ｔ軸およびＵ軸の各軸廻りに角度制御可能である。Ｓ軸は首から真上（鉛直上向き）に向かう軸であり、Ｔ軸およびＵ軸は、それぞれ、そのＳ軸に対して異なる方向で直交する軸である。頭部７２には、人の口に相当する位置に、スピーカ７４が設けられる。スピーカ７４は、ロボット１６が、それの周辺の人２６に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ７４は、ロボット１６の他の部位、たとえば胴体などに設けられてもよい。
【００６０】
また、頭部７２には、目に相当する位置に眼球部７６Ｒおよび７６Ｌが設けられる。眼球部７６Ｒおよび７６Ｌは、それぞれ眼カメラ５４Ｒおよび５４Ｌを含む。以下、右の眼球部７６Ｒと左の眼球部７６Ｌとをまとめて眼球部７６ということがあり、また、右の眼カメラ５４Ｒと左の眼カメラ５４Ｌとをまとめて眼カメラ５４ということもある。
【００６１】
眼カメラ５４は、ロボット１６に接近した人の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ５４としては、上述した全方位カメラ５０と同様のカメラを用いることができる。
【００６２】
たとえば、眼カメラ５４は眼球部７６内に固定され、眼球部７６は眼球支持部（図示せず）を介して頭部７２内の所定位置に取り付けられる。眼球支持部は、２軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部７２に対して設けられる軸であり、α軸は頭部７２の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部７２の正面側（顔）が向く方向に直交する方向の軸である。この実施例では、頭部７２がホームポジションにあるとき、α軸はＳ軸と平行であり、β軸はＵ軸と平行であるように設定される。眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部７６ないし眼カメラ５４の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。
【００６３】
なお、眼カメラ５４の変位を制御するα軸およびβ軸では、「０度」がホームポジションであり、このホームポジションでは、図１４に示すように、眼カメラ５４のカメラ軸は頭部７２の正面側（顔）が向く方向に向けられ、視線は正視状態となる。
【００６４】
図１５はロボット１６の電気的な構成を示すブロック図であり、この図１５を参照して、ロボット１６は、ロボット１６の全体を制御するＣＰＵ２８を含む。ＣＰＵ２８は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス７８を介して、メモリ８０、モータ制御ボード８２、センサ入力／出力ボード８４および音声入力／出力ボード８６に接続される。
【００６５】
メモリ８０は、図示は省略するが、ＲＯＭ、ＨＤＤおよびＲＡＭ等を含み、ＲＯＭおよびＨＤＤにはロボット１６を制御するためのプログラムが予め記憶され、ＲＡＭはワークメモリやバッファメモリとして用いられる。プログラムは、位置推定を行うためのプログラム、および人間２６との間でインタラクションをする際のコミュニケーション行動を実行するためのプログラム等を含む。また、コミュニケーション行動の実行の際にスピーカ７４から出力する音声または声の音声データ（音声合成データ）および所定の身体動作を提示するための角度データ等も記憶される。さらに、ＨＤＤ等には、ロボット１６の初期位置座標（Ｘｒ０，Ｙｒ０）を示すデータおよび初期角度（向き）θｒ０を示すデータを含む初期情報が予め記憶される。また、ＲＡＭには、ロボットの現在の位置座標（Ｘｒ，Ｙｒ）を示す現在位置データ領域、および現在の角度θｒ（向き）を示す現在角度データ領域が設けられる。なお、ロボット１６の初期情報を予め記憶せずに、中央コンピュータ１２から最初に初期情報を送信させるようにしてもよい。
【００６６】
モータ制御ボード８２は、たとえばＤＳＰで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。すなわち、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受け、右眼球部７６Ｒのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図１５では、まとめて「右眼球モータ」と示す。）８８の回転角度を制御する。同様に、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受け、左眼球部７６Ｌのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図１５では、まとめて「左眼球モータ」と示す。）９０の回転角度を制御する。
【００６７】
また、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受け、右肩関節５６ＲのＸ軸、Ｙ軸およびＺ軸のそれぞれの角度を制御する３つのモータと右肘関節６２ＲのＷ軸の角度を制御する１つのモータとの計４つのモータ（図１５では、まとめて「右腕モータ」と示す。）９２の回転角度を調節する。同様に、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受け、左肩関節５６ＬのＡ軸、Ｂ軸およびＣ軸のそれぞれの角度を制御する３つのモータと左肘関節６２ＬのＤ軸の角度を制御する１つのモータとの計４つのモータ（図１５では、まとめて「左腕モータ」と示す。）９４の回転角度を調整する。
【００６８】
また、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受け、頭部７２のＳ軸、Ｔ軸およびＵ軸のそれぞれの角度を制御する３つのモータ（図１５では、まとめて「頭部モータ」と示す。）９６の回転角度を制御する。また、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受け、腰モータ４０の回転角度を制御する。
【００６９】
さらに、モータ制御ボード８２は、ＣＰＵ２８からの制御データを受けて、２つの車輪３０をそれぞれ駆動する２つのモータ（図１５では、まとめて「車輪モータ」と示す。）３４の回転角度を制御する。具体的には、モータ制御ボード８２は、車輪モータ３４に設けられるロータリエンコーダ等のような角度センサにも接続されており、角度センサからの出力にも基づいて車輪モータ３４の回転を制御する。また、モータ制御ボード８２は車輪モータ３４の角度センサの出力データをＣＰＵ２８に与える。
【００７０】
なお、この実施例では、車輪モータ３４を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ３４と同様に、直流モータを用いるようにしてもよい。
【００７１】
センサ入力／出力ボード８４もまた、同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ２８に与える。すなわち、超音波距離センサ４０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード８４を通してＣＰＵ２８に入力される。また、全方位カメラ５０からの映像信号が、必要に応じてこのセンサ入力／出力ボード８４で所定の処理を施された後、ＣＰＵ２８に入力される。眼カメラ５４からの映像信号も、同様にして、ＣＰＵ２８に入力される。また、上述した複数のタッチセンサ（図１５では、まとめて「タッチセンサ６６」と示す。）からの信号がセンサ入力／出力ボード８４を介してＣＰＵ２８に与えられる。さらに、上述した衝突センサ３６からの信号も、同様にして、ＣＰＵ２８に与えられる。
【００７２】
音声入力／出力ボード８６もまた、同様に、ＤＳＰで構成され、ＣＰＵ２８から与えられる音声合成データに従った音声または声がスピーカ７４から出力される。また、マイク５２からの音声入力が、音声入力／出力ボード８６を介してＣＰＵ２８に取り込まれる。
【００７３】
また、ＣＰＵ２８は、バス７８を介して通信ＬＡＮボード９８および読取機１８に接続される。通信ＬＡＮボード９８は、ＤＳＰで構成され、ＣＰＵ２８から与えられる送信データを無線通信装置１００に与えて、無線通信装置１００から送信データを、たとえば無線ＬＡＮのようなネットワークを介して中央コンピュータ１２に送信させる。また、通信ＬＡＮボード９８は、無線通信装置１００を介してデータを受信し、受信したデータをＣＰＵ２８に与える。つまり、この通信ＬＡＮボード９８および無線通信装置１００を用いて、ロボット１６は中央コンピュータ１２等と無線通信を行うことができる。読取機１８は、上述したように、無線タグ２０を検出し、検出情報をＣＰＵ２８に与える。
【００７４】
この実施例では、中央コンピュータ１２は、たとえば１秒間隔等の一定周期で、各読取機１４から検出情報を取得して、その検出時刻における無線タグ２０の位置を推定する。この環境に設置された読取機１４の検出情報に基づく推定位置はおおまかな位置である。そこで、ロボット１６を移動させて、読取機１８を無線タグ２０の推定位置に近づける。そして、読取機１８で当該無線タグ２０を検出することによって、無線タグのより正確な位置を推定する。
【００７５】
ここで、無線タグ２０の存在位置の推定手法について説明する。上述したように、読取機１４で無線タグ２０が検出され、区分レベルがＬであったとき、その無線タグ２０は、その検出時刻ｔにおいて、図７で斜線で示される領域に存在するものと仮定される。具体的には、この読取機１４における無線タグ２０の存在仮定領域は、当該読取機１４の位置座標（ＸｅＮ，ＹｅＮ）を中心とし、受信感度レベルＬでの最大検出可能距離ｄＮＬおよび受信感度レベルＬ−１での最大検出可能距離ｄＮＬ−１をそれぞれ半径とした２つの円の間の領域である。そして、この存在仮定領域において、無線タグ２０の存在する確率は一様に分布するものと仮定する。つまり、この存在仮定領域内の各座標（ｘ，ｙ）の確率を総和すると１．０になるように、各座標（ｘ，ｙ）での存在確率が算出される。
【００７６】
所定空間２４内においては、１つの無線タグ２０が、たとえば受信感度レベル３または４程度の所定のレベルで同時に複数の読取機１４によって検出されるように、各読取機１４が配置されている。つまり、複数の読取機１４で１つの無線タグ２０が検出される場合に、所定の区分レベルのときの存在仮定領域が、他の読取機１４の所定の区分レベルでの存在仮定領域と重なり合う状態になるようにして、複数の読取機１４は配置されている。この場合には、無線タグ２０の存在する確率は、当該無線タグ２０を検出した複数の読取機１４の存在仮定領域が最も多く重なり合う部分で最も高くなる。たとえば、図１６に示すように、３つの読取機１４で同時に無線タグ２０が検出されたときには、その検出時刻ｔにおいて、当該無線タグ２０の存在する確率は、３つの存在仮定領域の重なり合う部分（図１６の格子線部分）で最も高くなる。また、２つの存在仮定領域の重なり合う部分の確率は、他と重ならない領域の部分の確率よりも高い。
【００７７】
具体的に、環境の読取機１４による検出情報に基づく推定位置を算出する際には、まず、検出した読取機１４ごとに、その存在仮定領域に当該無線タグ２０（固有ＩＤ＝ｐとする。）が存在する確率を計算する。次に、読取機１４ごとに算出された確率を、座標（ｘ，ｙ）ごとに総和する。そして、この総和を、検出した読取機１４の数で割ることによって、正規化して、その検出時刻ｔにおける当該無線タグ（ｐ）が存在する確率Ｐ（ｘ，ｙ）を算出する。続いて、算出した確率Ｐ（ｘ，ｙ）と、過去の時刻ｔ−１における無線タグ（ｐ）が存在する確率Ｐ（ｔ−１，ｐ，ｘ，ｙ）とを、全ての座標（ｘ，ｙ）で足し合わせる。これは時間方向の円滑化処理であり、過去における位置にも基づいて現在の位置を推定している。さらに、この足し合わせによって得られた値を正規化して、時刻ｔにおける当該無線タグ２０の存在する確率Ｐ（ｔ，ｐ，ｘ，ｙ）を求める。そして、すべての座標（ｘ，ｙ）と算出した確率Ｐ（ｔ，ｐ，ｘ，ｙ）とを用いて、重心の座標（Ｘｐ，Ｙｐ）を算出する。この重心の座標が当該無線タグ２０の推定位置座標である。重心のｘ座標Ｘｐおよびｙ座標Ｙｐは、次の数１および数２で算出される。
【００７８】
【数１】
2006127355.tif 000003
【００７９】
【数２】
2006127355.tif 000004
【００８０】
ここで、Ｐ（ｘ，ｙ）は、座標（ｘ，ｙ）における当該無線タグ（ｐ）の検出時刻ｔにおける存在確率である。すなわち、重心の座標は、座標とその座標の持つ確率との積をすべての座標に対して行って、総和をとり、この総和の値をすべての座標が持つ確率の総和で割ることによって、決定される。
【００８１】
そして、この実施例では、さらにロボット１６に搭載した読取機１８でその無線タグ２０を検出して当該無線タグ２０のより正確な位置を推定する。上述した環境の読取機１４の検出情報に基づく位置推定処理によって複数の無線タグ２０の位置が推定された場合には、複数の無線タグ２０の中から目標となる無線タグ２０を決定して、この目標タグ２０の位置にロボット１６を移動させる。その後、ロボット１６の読取機１８で目標タグ２０が検出されたとき、目標タグ２０の推定位置座標を算出する。
【００８２】
ロボット１６の読取機１８で目標タグ２０が検出された場合には、図１７に示すように、環境の読取機１４の存在仮定領域のそれぞれが重なり合った部分に、さらにロボット１６の読取機１８の存在仮定領域が重なった部分において、当該タグの存在確率が最も高くなる。
【００８３】
なお、ロボット１６の存在仮定領域は、読取機１８の位置座標（Ｘｒ１，Ｙｒ１）を中心とし、長さｄｒＬおよびｄｒＬ−１をそれぞれ半径とした２つの円の間の領域である。ここで、長さｄｒＬは、読取機１８の検出情報から検出した区分レベルＬに対応する最大検出可能距離ｄｒＬであり、長さｄｒＬ−１は、区分レベルＬの１段階下のレベル（Ｌ−１）に対応する最大検出可能距離ｄｒＬ−１である。上述のように、ロボット１６の読取機１８の最大検出可能距離ｄｒＬは、すべてのレベルＬで、環境の読取機１４の最大検出可能距離ｄＮＬよりも小さく設定されている。また、レベルＬでの最大検出可能距離ｄｒＬと、レベルＬ−１での最大検出可能距離ｄｒＬ−１との差は、どのレベルでも非常に小さく設定されている。このため、ロボット１６の読取機１８を用いて無線タグ２０を検出することによって、存在仮定領域の重なり合う部分をより小さくすることが可能であり、したがって、無線タグ２０の位置をより正確に推定することができる。
【００８４】
具体的に、ロボット１６の読取機１８による検出情報に基づく推定位置を算出する際には、まず、検出情報から区分レベルＬを検出して、存在仮定領域を決定しておく。次に、読取機１８による目標タグ２０の検出時刻ｔにおいて、読取機１８の存在仮定領域に目標タグ２０（固有ＩＤ＝ａとする。）が存在する確率Ｐｍ（ｔ，ａ，ｘ，ｙ）を算出する。この読取機１８の存在仮定領域においても、上述の読取機１４の場合と同様に、目標タグ２０の存在確率は、一様に分布するものと仮定される。つまり、存在仮定領域内の各座標（ｘ，ｙ）の確率を総和すると１．０になるように、各座標（ｘ，ｙ）での存在確率が算出される。そして、この確率Ｐｍ（ｔ，ａ，ｘ，ｙ）と、環境の読取機１４の検出情報に基づいて算出された同時刻ｔにおける目標タグ２０が存在する確率Ｐ（ｔ，ａ，ｘ，ｙ）とを、全ての座標（ｘ，ｙ）で加算する。この加算によって得られた値を正規化して、目標タグ２０が存在する確率Ｐ（ｔ，ａ，ｘ，ｙ）を算出する。そして、すべての座標（ｘ，ｙ）と確率Ｐ（ｔ，ａ，ｘ，ｙ）とを用いて重心の座標（Ｘａ，Ｙａ）すなわち推定位置座標を算出する。この目標タグａの重心座標も、上述の数１および数２に従って算出される。
【００８５】
図１８には、中央コンピュータ１２のＣＰＵの動作の一例が示される。まず、ステップＳ１で、オペレータによる停止命令が生じたか否かを判断する。ステップＳ１で“ＹＥＳ”であれば、つまり、マウスまたはキーボード等の入力装置から停止を指示するデータが入力された場合には、ステップＳ３でロボット１６に停止命令を送信して、処理を終了する。
【００８６】
一方、ステップＳ１で“ＮＯ”であれば、ステップＳ５で、全ての読取機１４から検出情報を取得してＲＡＭに記憶する。このステップＳ５の検出情報の取得は、周期的に（たとえば１秒間隔で）実行される。図３に示したように、検出情報には、当該読取機の固有ＩＤ，検出時刻ｔ、電波受信感度レベルＬごとの検出された各無線タグ２０の固有ＩＤ等が含まれている。続いて、ステップＳ７で、取得した検出情報に基づいて、無線タグ２０ごとに当該無線タグ２０に関する情報を抜き出す。そして、図６に示したように、無線タグ固有ＩＤに関連付けて、検出時刻ｔ、検出した読取機の情報（読取機固有ＩＤとその区分レベルＬ）を記憶したデータをＲＡＭに作成する。区分レベルＬは、上述のように、当該無線タグ２０の検出の有無を分ける電波受信感度レベルＬを検出することによって取得される。
【００８７】
そして、ステップＳ９で、無線タグ２０が所定空間２４に存在するか否かを判断する。ステップＳ９で“ＮＯ”であれば、つまり、各読取機１４からの検出情報に無線タグ固有ＩＤが含まれていなかった場合には、処理はステップＳ１７へ進む。
【００８８】
一方、ステップＳ９で“ＹＥＳ”であれば、ステップＳ１１で無線タグ２０ごとの位置推定処理を実行する。この位置推定処理の動作は図１９に詳細に示される。
【００８９】
図１９の最初のステップＳ３１では、処理する無線タグｐ（ｐ＝固有ＩＤ）に関する情報をステップＳ７で生成したデータから取得する。無線タグｐに関する情報は、図６に示したように、無線タグ固有ＩＤに関連付けられた、検出時刻ｔ、検出した読取機の情報（読取機固有ＩＤとその区分レベルＬ）等を含む。複数の無線タグ２０が検出された場合、処理するタグｐの選択順序は任意であり、たとえばタグ固有ＩＤの順に従って設定される。
【００９０】
次に、ステップＳ３３では、当該無線タグｐを検出した読取機１４ごとに、その存在仮定領域（図７参照）に、当該無線タグｐが存在する確率を算出する。なお、各読取機１４の位置座標は、読取機１４に関する情報（図４）から取得される。また、各読取機１４の存在仮定領域を規定する最大検出可能距離ｄＮＬおよびｄＮＬ−１は、各読取機の区分レベルＬ（受信感度レベルＬ）に基づいて、同じく読取機１４に関する情報（図４）から取得される。
【００９１】
続いて、ステップＳ３５で、読取機１４ごとに算出された当該無線タグｐが存在する確率を座標（ｘ，ｙ）ごとに総和して、ステップＳ３７で、この総和を、検出した読取機１４の数で割ることによって、正規化して、当該無線タグｐが存在する確率Ｐ（ｘ，ｙ）を算出する。
【００９２】
続いて、ステップＳ３９で、算出した当該タグが存在する確率Ｐ（ｘ，ｙ）と、過去（前回）の時刻ｔ−１における当該無線タグｐが存在する確率Ｐ（ｔ−１，ｐ，ｘ，ｙ）とを、全ての座標（ｘ，ｙ）で加算し、ステップＳ４１で、この加算値を正規化して、検出時刻ｔにおいて、当該無線タグｐが存在する確率Ｐ（ｔ，ｐ，ｘ，ｙ）を算出する。なお、この値はステップＳ３９の処理で次回の検出時刻での計算に利用されるので、ＲＡＭの所定領域に記憶しておく。
【００９３】
そして、ステップＳ４３で、全ての座標（ｘ，ｙ）と確率Ｐ（ｔ，ｐ，ｘ，ｙ）とを用いて、上記数１および数２に従って、重心の座標（Ｘｐ，Ｙｐ）を算出する。この重心座標が、当該無線タグｐの時刻ｔにおける推定位置座標である。ステップＳ４３を終了すると、処理は図１８のステップＳ１３へ戻る。
【００９４】
図１８に戻って、ステップＳ１３で、時刻ｔ、無線タグ固有ＩＤ，および環境に設置された読取機１４による推定位置（Ｘｐ，Ｙｐ）を推定位置ＤＢ２２に記録する。つまり、図１３に示したように、時刻ｔに関連付けて、タグ固有ＩＤおよび推定位置座標（Ｘｐ，Ｙｐ）が記憶され、さらに、その無線タグｐを検出した読取機の種別として、環境に設置された読取機１４であることを示すデータが記憶される。
【００９５】
ステップＳ１５では、全ての無線タグ２０を処理したか否かを判断する。ここでは、ステップＳ７で検出された無線タグ２０に関して判断する。ただし、登録されている全無線タグ２０に関して判断してもよい。ステップＳ１５で“ＮＯ”であれば、ステップＳ１１に戻る。こうして、全ての無線タグ２０について位置推定処理を行って、推定位置座標を記録する。
【００９６】
ステップＳ１５で“ＹＥＳ”であれば、ステップＳ１７で目標タグ設定処理を実行する。この目標タグ設定処理の動作の一例が図２０に詳細に示される。
【００９７】
図２０の最初のステップＳ５１では、各無線タグ２０とロボット１６との距離をそれぞれ算出する。各距離は、ステップＳ１３（図１８）で推定位置ＤＢ２２に記憶された当該時刻ｔにおける各無線タグ２０の推定位置座標と、ＲＡＭに記憶されているロボット１６の現在位置座標を示す現在位置データ（図１２参照）とに基づいて算出される。
【００９８】
次に、ステップＳ５３で、ロボット１６に最も近い距離に存在する無線タグ２０を検出して、これを目標タグの候補として選択する。
【００９９】
そして、ステップＳ５５で、選択された無線タグ２０は、ロボット１６の読取機１８で既に検出されているか否かを判断する。つまり、タグ履歴データ（図１２参照）に、当該選択された無線タグ２０の固有ＩＤが記憶されているか否かが判定される。
【０１００】
ステップＳ５５で“ＮＯ”であれば、ステップＳ５７で当該選択された無線タグ２０を目標タグａに設定する。つまり、ＲＡＭの目標タグ設定データａ（図１２）に、当該選択された無線タグ２０の固有ＩＤを書き込む。
【０１０１】
一方、ステップＳ５５で“ＹＥＳ”であれば、ステップＳ５９で、まだ候補として選択されていない無線タグ２０が残っているか否かを判断する。ステップＳ５９で“ＹＥＳ”であれば、ステップＳ６１で、残りの無線タグ２０のうちロボット１６に最も近い距離にいる無線タグ２０を検出して、新たに目標タグ候補として選択する。そして、ステップＳ５５に戻る。
【０１０２】
また、ステップＳ５９で“ＮＯ”であれば、つまり、検出された無線タグ２０のすべてが既にロボット１６の読取機１８で検出されている場合には、ステップＳ６３で、ロボット１６の読取機１８で検出された無線タグ２０の履歴を示すタグ履歴データ（図１２参照）を初期化する。これによって、すべての無線タグ２０を目標タグの候補として選択され得るようにする。ステップＳ５７またはＳ６３を終了すると、処理は図１８のステップＳ１９へ戻る。
【０１０３】
図１８のステップＳ１９では、ロボット制御処理を実行する。このロボット制御処理の動作は図２１に詳細に示される。
【０１０４】
図２１の最初のステップＳ７１で、目標タグが設定されているか否かを判断する。ステップＳ７１で“ＹＥＳ”であれば、ステップＳ７３で、ロボット１６の現在の位置座標および現在の角度データ、ならびに目標タグの推定位置座標に基づいて、ロボット１６の向きを目標タグへ向けるための目標角度を算出する。そして、ステップＳ７５で、目標角度および目標タグの推定位置座標（目標座標）をロボット１６に送信する。つまり、目標タグａの位置を目標とした移動のための指示をロボット１６に与える。ロボット１６では、後述するように、この指示に応じて移動する。
【０１０５】
ステップＳ７５を終了し、または、ステップＳ７１で“ＮＯ”であれば、ステップＳ７７で、ロボット１６から現在の位置および角度情報を受信したか否かを判断する。ステップＳ７７で“ＹＥＳ”であれば、ステップＳ７９で、ＲＡＭに記憶されるロボット１６の現在位置データおよび現在角度データを、受信したデータにそれぞれ更新する。
【０１０６】
ステップＳ７９を終了し、または、ステップＳ７７で“ＮＯ”であれば、ステップＳ８１で、ロボット１６から検出情報を受信したか否かを判断する。ステップＳ８１で“ＹＥＳ”であれば、ステップＳ８３で、ＲＡＭに記憶されるタグ履歴データを更新する。つまり、受信した検出情報に含まれる無線タグ固有ＩＤすなわち目標タグの固有ＩＤを、ロボット１６の読取機１８で検出されたタグの履歴に追加する。また、検出情報には、図３に示したように、読取機１８の固有ＩＤ（ＩＤＲｒ）、検出時刻ｔ、検出されたタグの情報（受信感度レベルＬごとの検出されたタグ固有ＩＤ）等の情報も含まれるので、これらを検出情報から抽出してＲＡＭに記憶する。ステップＳ８３を終了し、またはステップＳ８１で“ＮＯ”であれば、処理は図１８のステップＳ２１へ戻る。
【０１０７】
図１８のステップＳ２１では、目標タグが検出されたか否かを判断する。つまり、ロボット１６から受信した検出情報に、目標タグの固有ＩＤが含まれていたかどうかが判断される。ステップＳ２１で“ＹＥＳ”であれば、ステップＳ２３で、目標タグの位置推定処理を実行する。この目標タグの位置推定処理の動作は図２２に詳細に示される。
【０１０８】
図２２の最初のステップＳ９１で、ロボット１６の読取機１８の存在仮定領域（図１７等参照）に目標タグａが存在する確率Ｐｍ（ｔ，ａ，ｘ，ｙ）を計算する。なお、ロボット１６の読取機１８の位置座標（Ｘｒ１，Ｙｒ１）は、ロボット１６の現在位置データ（Ｘｒ，Ｙｒ）（図１２）と、読取機１８のロボット１６における設置位置データ（Ｘｒｒ，Ｙｒｒ）（図５）とに基づいて算出される。また、存在仮定領域を規定する最大検出可能距離ｄｒＬおよびｄｒＬ−１は、受信した読取機１８の検出情報に基づいて検出した区分レベルＬに基づいて、読取機１８に関する情報（図５）から取得される。
【０１０９】
続いて、ステップＳ９３で、読取機１８で目標タグａが検出された時刻ｔにおける目標タグａが存在する確率Ｐ（ｔ，ａ，ｘ，ｙ）と、ステップＳ９１で算出された確率Ｐｍ（ｔ，ａ，ｘ，ｙ）とを、全ての座標（ｘ，ｙ）で加算する。なお、時刻ｔにおける目標タグａが存在する確率Ｐ（ｔ，ａ，ｘ，ｙ）は、ステップＳ１３でそのデータが記録される推定位置ＤＢ２２から取得される。ステップＳ９５では、その加算値を正規化して、目標タグａが存在する確率Ｐ（ｔ，ａ，ｘ，ｙ）を算出する。そして、ステップＳ９７で、全ての座標（ｘ，ｙ）と確率（ｔ，ａ，ｘ，ｙ）とを用いて重心の座標（Ｘａ，Ｙａ）を算出する。この重心座標が、目標タグａの時刻ｔにおける推定位置座標である。ステップＳ９７を終了すると、処理は図１８のステップＳ２５へ戻る。
【０１１０】
図１８に戻って、ステップＳ２５では、算出した目標タグａの推定位置座標（Ｘａ，Ｙａ）を推定位置ＤＢ２２に記録する。つまり、図１３に示したように、時刻ｔに関連付けて、目標タグのタグ固有ＩＤおよび推定位置座標が記憶され、さらに、読取機の種別として、ロボット１６に設置された読取機１８であることを示すデータが記憶される。
【０１１１】
ステップＳ２５を終了すると、処理はステップＳ１へ戻る。また、ステップＳ２１で“ＮＯ”である場合、つまり、目標タグａがロボット１６の読取機１８で検出されていない場合にも、処理はステップＳ１へ戻る。
【０１１２】
図２３および図２４には、無線タグ２０の位置推定を行う際の、ロボット１６のＣＰＵ２８の動作の一例が示される。図２３の最初のステップＳ１１１で、中央コンピュータ１２からの停止命令を受信したか否かを判断し、“ＹＥＳ”であればこの処理を終了する。
【０１１３】
一方、ステップＳ１１１で“ＮＯ”であれば、ステップＳ１１３で、中央コンピュータ１２からの目標角度を受信したか否かを判断する。ステップＳ１１３で“ＹＥＳ”であれば、受信した目標角度データをメモリ８０の所定領域に記憶し、ステップＳ１１５で、その目標角度データとメモリ８０の現在角度データとに基づいて、現在の角度は目標角度に到達しているか否かを判断する。ステップＳ１１５で“ＮＯ”であれば、ステップＳ１１７で、モータ制御ボード８２に車輪モータ３４の制御データを送って、ロボット１６を一定の角度だけ旋回させる。ステップＳ１１７を終了した場合、またはステップＳ１１５で“ＹＥＳ”である場合、またはステップＳ１１３で“ＮＯ”である場合には、ステップＳ１１９に進む。
【０１１４】
ステップＳ１１９では、中央コンピュータ１２からの目標座標を受信したか否かを判断する。ステップＳ１１９で“ＹＥＳ”であれば、受信した目標座標データをメモリ８０の所定領域に記憶し、ステップＳ１２１で、その目標座標データとメモリ８０の現在位置データとに基づいて、現在の位置は目標座標に到達しているか否かを判断する。ステップＳ１２１で“ＮＯ”であれば、ステップＳ１２３で、モータ制御ボード８２に車輪モータ３４の制御データを送って、ロボット１６を一定の距離だけ前進させる。ステップＳ１２３を終了した場合、またはステップＳ１２１で“ＹＥＳ”である場合、またはステップＳ１１９で“ＮＯ”である場合には、処理は次の図２４のステップＳ１２５へ進む。
【０１１５】
図２４のステップＳ１２５では、車輪モータ３４の角度センサの出力データをモータ制御ボード８２から取得して、その出力データとメモリ８０に記憶されている現在角度データとに基づいて、現在の角度（ステップＳ１１７による旋回後の角度）を算出し、ステップＳ１２７でメモリ８０の現在角度データを更新する。
【０１１６】
また、ステップＳ１２９で、車輪モータ３４の角度センサの出力データと、メモリ８０に記憶されている現在位置データとに基づいて、現在の座標（ステップＳ１２３による移動後の座標）を算出し、ステップＳ１３１でメモリ８０の現在位置データを更新する。そして、ステップＳ１３３で、中央コンピュータ１２に現在の位置情報および角度情報を送信する。
【０１１７】
また、ステップＳ１３５で、ロボット１６の読取機１８から検出情報をメモリ８０に取得する。検出情報には、図３に示したように、当該読取機１８の固有ＩＤ、検出時刻ｔ、検出されたタグの情報（受信感度レベルＬごとの検出されたタグ固有ＩＤ）等が含まれている。また、この検出情報の取得もまた、中央コンピュータ１２での環境の読取機１４からの検出情報の取得と同様に、所定周期（たとえば１秒間隔）で行われる。
【０１１８】
そして、ステップＳ１３７で中央コンピュータ１２に検出情報を送信する。このステップＳ１３７を終了すると、処理は図２３のステップＳ１１１へ戻る。
【０１１９】
この実施例によれば、環境に設置された複数の読取機１４によって無線タグ２０のおおまかな位置を推定した後、読取機１８を搭載したロボット１６を目標となる無線タグ２０の推定位置へ向けて移動させて、その読取機１８で目標タグを検出するようにしたので、無線タグ２０の位置をより正確に推定することができる。
【０１２０】
また、算出された推定位置データは推定位置ＤＢ２２に記録される。各無線タグ２０の推定位置は、図１３に示したように、周期的な検出時刻ｔに関連付けて記録されている。つまり、推定位置データは検出時刻の経過に沿った時系列データでもあり、各無線タグ２０の移動軌跡を示している。したがって、このシステム１０によれば、無線タグ２０の移動の履歴すなわち無線タグ２０の装着された人間２６の行動履歴を、より正確に記録することができる。
【０１２１】
さらに、この実施例では、読取機１８を移動させるロボット１６として、コミュニケーションロボットを適用した。この場合には、この行動履歴データを用いることによって、ロボット１６は、無線タグ２０を装着した人間２６に対して、たとえば、その人間２６の行動履歴に基づいたコミュニケーション行動を実行したり、サービスを提供したりすることが可能になる。しかも、このシステム１０で記録される行動履歴データ（推定位置データ）は精度が高いので、人間２６の行動をより正確に把握することができる。したがって、ロボット１６は、無線タグ２０を装着した人間２６に対して、より的確なコミュニケーションやサービスを提供することができる。
【０１２２】
なお、上述の実施例では、より正確な位置を推定する目標タグとして、ロボット１６に最も近い無線タグ２０を選択するという規則を適用するようにしていた。しかしながら、目標タグの選択方法または選択規則はこれに限られるものではなく適宜変更され得る。たとえば、より正確な位置を推定したい１または複数の無線タグ２０を予め設定しておき、これらの中から目標タグを選択するようにしてもよい。あるいは、ロボット１６に特定の行動をした人間２６に装着された無線タグ２０、またはロボット１６が特定の行動を実行した人間２６に装着された無線タグ２０などを、目標タグに設定するようにしてもよい。また、たとえば目標タグを所定時間追跡するような場合には、目標タグの位置推定を所定の時間継続して行ったか否かを判定するなど、目標タグを変更する必要があるか否かを判断して、必要がある場合に目標タグ設定処理を実行するようにしてもよい。
【０１２３】
また、上述の各実施例では、システム１０は、中央コンピュータ１２とロボット１６とによって構成されたが、ロボット１６自体が中央コンピュータ１２として機能するようにシステム１０を構成してもよい。この場合には、ロボット１６が移動可能であるように、環境の読取機１４とロボット１６とは無線ＬＡＮなど無線によって接続される。
【図面の簡単な説明】
【０１２４】
【図１】この発明の一実施例の無線タグの位置推定システムの一例を示すブロック図である。
【図２】図１実施例の無線タグの位置推定システムの概要を示す図解図である。
【図３】無線タグ読取機から出力される検出情報の内容の一例を示す図解図である。
【図４】中央コンピュータのメモリに記憶される環境の無線タグ読取機に関する情報の内容の一例を示す図解図である。
【図５】中央コンピュータのメモリに記憶されるロボットの無線タグ読取機に関する情報の内容の一例を示す図解図である。
【図６】検出情報に基づいて無線タグごとに生成される無線タグに関する情報の内容の一例を示す図解図である。
【図７】無線タグ読取機で検出された無線タグの存在仮定領域を示す図解図である。
【図８】無線タグ検出の区分レベルと無線タグ読取機の存在仮定領域との関係の一例を示す図解図である。
【図９】中央コンピュータのメモリに記憶されるロボットの初期情報の内容の一例を示す図解図である。
【図１０】ロボットの角度を説明するための図解図である。
【図１１】中央コンピュータのメモリに記憶されるユーザ情報の内容の一例を示す図解図である。
【図１２】中央コンピュータのＲＡＭのメモリマップの一部を示す図解図である。
【図１３】推定位置ＤＢに記憶されるデータの内容の一例を示す図解図である。
【図１４】図１実施例で用いられる移動型ロボットの一例を示す外観図である。
【図１５】図１４のロボットの電気的構成の一例を示すブロック図である。
【図１６】環境の無線タグ読取機による無線タグの位置推定を説明するための図解図である。
【図１７】環境の無線タグ読取機とロボットの無線タグ読取機とを用いた無線タグの位置推定を説明するための図解図である。
【図１８】中央コンピュータの動作の一例を示すフロー図である。
【図１９】図１８の位置推定処理の動作の一例を示すフロー図である。
【図２０】図１８の目標タグ設定処理の動作の一例を示すフロー図である。
【図２１】図１８のロボット制御処理の動作の一例を示すフロー図である。
【図２２】図１８の目標タグの位置推定処理の動作の一例を示すフロー図である。
【図２３】図１４のロボットの動作の一例の一部を示すフロー図である。
【図２４】図２３の続きを示すフロー図である。
【符号の説明】
【０１２５】
１０  …無線タグの位置推定システム
１２  …中央コンピュータ
１４，１８  …無線タグ読取機
１６  …移動型ロボット
２０  …無線タグ
２２  …推定位置ＤＢ
２４  …所定空間
２８  …ロボットのＣＰＵ
３０  …車輪
３４  …車輪モータ
８２  …モータ制御ボード
【図１】
2006127355.tif 000005
【図２】
2006127355.tif 000006
【図３】
2006127355.tif 000007
【図４】
2006127355.tif 000008
【図５】
2006127355.tif 000009
【図６】
2006127355.tif 000010
【図７】
2006127355.tif 000011
【図８】
2006127355.tif 000012
【図９】
2006127355.tif 000013
【図１０】
2006127355.tif 000014
【図１１】
2006127355.tif 000015
【図１２】
2006127355.tif 000016
【図１３】
2006127355.tif 000017
【図１４】
2006127355.tif 000018
【図１５】
2006127355.tif 000019
【図１６】
2006127355.tif 000020
【図１７】
2006127355.tif 000021
【図１８】
2006127355.tif 000022
【図１９】
2006127355.tif 000023
【図２０】
2006127355.tif 000024
【図２１】
2006127355.tif 000025
【図２２】
2006127355.tif 000026
【図２３】
2006127355.tif 000027
【図２４】
2006127355.tif 000028