特許文献1に開示の方法は、RSSIがより高いアンカーが子機または他のアンカーのより近傍に位置することと、子機のより近傍のアンカーを用いた位置推定の精度がより高いことと、を前提としている。しかしながら、実際には、RSSIは電波の伝搬環境に依存するため、近傍のアンカーのRSSIが高くない場合がある。したがって、RSSIが高いアンカーと位置推定の精度が高いアンカーとは、必ずしも一致しない。このように、特許文献1に開示の方法においては、RSSIが高いアンカーを用いても、高精度な位置推定結果を得ることが困難なことがある。
これに対して、本開示は、多数のアンカーの中からより精度の高い位置推定が期待できるアンカーを選択することで、より精度の高い位置推定を提供する。
例えば、本開示の非限定的な実施例において、各アンカーによる他アンカーとのRSSI-距離変換特性に応じて、エリアごとにより精度の高い位置推定が期待できるアンカーを予め優先順位付けしておく。そして、子機の位置推定時に優先順位上位アンカーから順に位置推定に用い、位置推定結果が収束するアンカー組を探索することで、より精度の高い位置推定を実現する。
以下、本開示の実施の形態について、図面を参照して詳細に説明する。なお、以下に説明する実施の形態は一例であり、本開示は以下の実施の形態により限定されるものではない。
<位置推定システムの構成>
図1は、実施の形態1に係る位置推定システム100の構成の一例を示す図である。
位置推定システム100は、位置推定装置10と、アクセスポイント(AP)20と、複数のアンカー(無線通信装置)30(30-1,30-2,…,30-N)と、少なくとも1台の子機(無線端末)40と、を備える。Nは、例えば、4以上の整数であり、図1に示される一例においては、N=9である。
位置推定装置10は、位置推定システム100全体を制御し、アンカー30と他のアンカー30または子機40との間の無線通信の受信状態を示す情報に基づいて、子機40の位置を推定する。位置推定装置10は、例えば、PC(Personal Computer)である。位置推定装置10の構成については、図2を参照して後述する。
以下、情報の一例として、RSSIを用いて本開示を説明する。しかしながら、他のアンカー30および子機40が測定可能であり、かつ、アンカー30とアンカー30または子機40との間の相対位置の推定に用いることができる他の情報を用いても、実施の形態1を同様に実施できる。他の情報は、例えば、他のアンカー30または子機40からの電波の到来方向または他のアンカー30または子機40からの電波の到来時間である。
AP20は、位置推定装置10と、アンカー30および子機40との間の信号の送受信処理を中継する。AP20と位置推定装置10とは、例えば、有線LAN(Local Area Network)を介して接続される。AP20は、アンカー30および子機40と無線通信する。一例において、無線通信には、920MHz帯の無線信号が用いられる。他の一例において、無線通信は、特定小電力通信、無線LAN、Bluetooth、LPWA(Low Power Wide Area)、LoRa、NB-IoT(Narrow Band - Internet of Things)、または、Sigfoxである。AP20の構成については、図3を参照して後述する。
アンカー30は、AP20を介して、位置推定装置10、アンカー30、または子機40と無線通信する。一例において、無線通信には、920MHz帯の無線信号が用いられる。他の一例において、無線通信は、特定小電力通信、無線LAN、Bluetooth、LPWA(Low Power Wide Area)、LoRa、NB-IoT(Narrow Band - Internet of Things)、または、Sigfoxである。アンカー30は、既知の位置(設置位置)に設置される。アンカー30の構成については、図4を参照して後述する。
子機40は、AP20を介して、位置推定装置10または子機40と無線通信する。一例において、無線通信には、920MHz帯の無線信号が用いられる。他の一例において、無線通信は、特定小電力通信、無線LAN、Bluetooth、LPWA(Low Power Wide Area)、LoRa、NB-IoT(Narrow Band - Internet of Things)、または、Sigfoxである。子機40の位置は、既知でない。子機40の構成については、図5を参照して後述する。
AP20と、アンカー30と、子機40と、にはそれぞれ固有の無線端末IDが割り振られる。また、アンカー30と子機40とは、他のアンカー30または子機40との間の無線通信の受信状態を示す情報を測定できる。
<位置推定装置の構成>
図2は、実施の形態1に係る位置推定装置10の構成の一例を示す図である。位置推定装置10は、通信部11と、ユーザー入力部12と、位置推定部13と、記憶部14と、を備える。
通信部11は、AP20へ送信する信号の送信処理、及び、AP20から受信する信号の受信処理を行う。通信部11は、例えば、無線や有線LANの通信インターフェースである。
通信部11は、例えば、位置推定部13において生成されるRSSI履歴送信要求パケットを、AP20に送信する。ここで、RSSI履歴送信要求パケットは、宛先の無線端末IDを含み、宛先の無線端末IDで特定されるアンカー30または子機40に対して、RSSI履歴の送信を要求するパケットである。また、通信部11は、例えば、RSSI履歴送信要求パケットの受信に応じて宛先の無線端末IDで特定されるアンカー30または子機40が送信したRSSI履歴送信応答パケットを、AP20から受信する。
ここで、RSSI履歴送信応答パケットは、送信元の無線端末IDと、宛先の無線端末IDと、RSSI情報と、を含むパケットである。RSSI情報は、RSSI測定対象パケットの送信元の無線端末IDおよび測定対象パケットのRSSIの、少なくとも1つの履歴を含む。次いで、通信部11は、RSSI履歴送信応答パケットからRSSI情報を抽出し、位置推定部13に出力する。
ユーザー入力部12は、位置推定装置10に対するコマンドまたはパラメータのユーザーによる入力を受け付ける。ユーザー入力部12は、ユーザーが入力したコマンドまたはパラメータに基づいて、アンカー30の無線端末IDと位置情報とを含むアンカーリスト141を生成し、エリアごとの所望位置推定精度を含む閾値リスト145A(図12A参照)を生成する。次いで、ユーザー入力部12は、アンカーリスト141と閾値リスト145Aとを記憶部14に出力する。ユーザー入力部12は、例えば、キ-ボ-ドと、マウスまたはトラックボールといったポインティング装置と、を備える。
位置推定部13は、通信部11を介して収集したRSSI情報に基づいて、アンカー30または子機40の位置推定を行う。位置推定部13は、キャリブレーション部131と、子機エリア推定部132と、基準局選択部133と、子機位置推定部134と、位置推定演算部135と、を備える。
キャリブレーション部131は、位置推定の対象となる領域上に複数のエリアを設定し、エリアごとのRSSI-距離変換テーブル143(図9参照)と優先順位リスト144(図10参照)とを作成する。RSSI-距離変換テーブル143と優先順位リスト144との作成方法については、図7~図10を参照して後述する。
子機エリア推定部132は、子機40の所在エリアを推定する。子機40の所在エリアの推定方法については、図6および図13を参照して後述する。
基準局選択部133は、子機40の位置推定に用いるアンカー30の組み合わせである複数の基準局を選択する。基準局の選択方法については、図6および図14を参照して後述する。
子機位置推定部134は、子機40と基準局と間のRSSIに基づいて、子機40の位置推定を行う。また、子機位置推定部134は、位置推定結果の収束の状況および所在エリアの推定の結果に基づいて、位置推定結果を子機40へ通知するか、子機40の所在エリアを再度推定するか、または、基準局を再度選択するかを判断する。ここで、位置推定結果が収束するとは、位置推定結果に含まれる複数の位置推定結果候補の分散値(ばらつき)が所定の閾値よりも小さいことである。子機40の位置推定方法については、図6および図16を参照して後述する。
位置推定演算部135は、位置推定対象の位置推定結果を算出する。位置推定演算部135は、位置推定対象と少なくとも3台のアンカー30との間のRSSIに基づいて、位置推定対象の絶対位置の位置推定結果を算出する。また、位置推定演算部135は、位置推定対象と少なくとも4台のアンカー30との間のRSSIに基づいて、位置推定対象の絶対位置についての4つの位置推定結果候補と分散値とを算出する。
例えば、位置推定演算部135は、位置推定対象とアンカー30との間のRSSIを入力し、位置推定対象エリアごとのRSSI-距離変換テーブル143(図9参照)に基づいて、位置推定対象とアンカー30との間の距離を算出する。次いで、位置推定演算部135は、算出した距離に基づいて、例えば、三点測位の原理に基づいて、アンカー30に対する位置推定対象の相対位置を算出する。次いで、位置推定演算部135は、算出した相対位置とアンカーリスト141の位置情報とに基づいて、位置推定対象の絶対位置の位置推定結果を算出する。
記憶部14は、位置推定装置10内で用いられるデータを記憶する。記憶部14は、例えば、ROM(Read Only Memory)またはRAM(Random Access Memory)といったメモリ装置、或いは、HDD(Hard Disc Drive)またはSSD(Solid State Drive)といったストレ-ジ装置を含む。
記憶部14は、アンカーリスト141と、RSSIテーブル142と、RSSI-距離変換テーブル143と、優先順位リスト144と、閾値リスト145と、を記憶する。
アンカーリスト141は、アンカー30の無線端末IDと位置情報とを含む。一例において、アンカーの無線端末IDと位置情報とは、ユーザー入力部12を介して、ユーザーによって設定される。
RSSIテーブル142は、受信側無線端末IDと、送信側無線端末IDと、受信側無線端末および送信側無線端末の間のRSSIと、を含む。RSSIテーブル142は、例えば、位置推定部13によって生成される。RSSIテーブル142の内容については、<表1>~<表4>を参照して後述する。
RSSI-距離変換テーブル143は、エリアごとのRSSIと距離との変換テーブルを含む。RSSI-距離変換テーブル143は、例えば、位置推定部13によって生成される。RSSI-距離変換テーブル143の詳細については、図8~図9を参照して後述される。
優先順位リスト144は、エリアごとに、基準局として用いられるアンカー30の優先順位を含む。優先順位リスト144は、位置推定部13によって生成される。優先順位リスト144の詳細については、図10を参照して後述される。
閾値リスト145は、エリアごとの所望位置推定精度と位置推定収束判断の閾値とを含む。所望位置推定精度は、ユーザー入力部12を介してユーザーによって設定される。位置推定収束判断の閾値は、位置推定部13によって設定される。閾値リスト145の詳細については、図12Aおよび図12Bを参照して後述される。
<アクセスポイントの構成>
図3は、実施の形態1に係るAP20の構成の一例を示す図である。AP20は、無線部21と、通信部22と、アンテナ部23と、を備える。
無線部21は、アンテナ部23で受信した信号を復調し、通信部22へ出力する。また、無線部21は、通信部22からの入力した信号を変調し、アンテナ部23より各アンカー30または子機40に送信する。
通信部22は、無線部21へ送信する信号の送信処理、及び、無線部21から受信する受信処理を行う。通信部22は、例えば、有線LANの通信インターフェースである。また、通信部22は、アンカー30または子機40と位置推定装置10との間のデータの送受信を中継する。通信部22は、例えば、位置推定装置10から受信したRSSI履歴送信要求パケットを無線部21へ出力し、無線部21から入力したRSSI履歴送信応答パケットを位置推定装置10へ送信する。
<アンカーの構成>
図4は、実施の形態1に係るアンカー30の構成の一例を示す図である。アンカー(無線通信装置)30は、無線部31と、通信制御部32と、記憶部33と、アンテナ部34と、を備える。
無線部31は、アンテナ部34で受信した信号を復調し、通信制御部32へ出力する。また、無線部31は、通信制御部32から入力した信号を変調し、アンテナ部34から、AP20、各アンカー30、または子機40に送信する。
通信制御部32は、他のアンカー30または子機40からの無線パケットの受信に応じて、無線パケットの送信元である他のアンカー30または子機40の無線端末IDと、送信元の無線端末およびアンカー30の間のRSSIとを記憶部33に出力する。また、通信制御部32は、AP20からのRSSI履歴送信要求パケットの受信に応じて、記憶部33が記憶するRSSI履歴に基づいてRSSI履歴送信応答パケットを作成し、無線部31へ出力する。RSSI履歴送信応答パケットは、送信元の無線端末IDと、アンカー30の無線端末IDと、送信元の無線端末およびアンカー30の間のRSSIと、を含む。
記憶部33は、通信制御部32から出力される送信元無線端末IDとRSSIとをRSSI履歴として記憶する。記憶部33は、例えば、ROM(Read Only Memory)またはRAM(Random Access Memory)といったメモリ装置、或いは、HDD(Hard Disc Drive)またはSSD(Solid State Drive)といったストレ-ジ装置を含む。
<子機の構成>
図5は、実施の形態1に係る子機40の構成の一例を示す図である。子機(無線端末)40は、無線部41と、通信制御部42と、記憶部43と、アンテナ部44と、を備える。
無線部41は、アンテナ部44で受信した信号を復調し、通信制御部42へ出力する。また、無線部41は、通信制御部42から入力した信号を変調し、アンテナ部44から、AP20または各アンカー30に送信する。
通信制御部42は、アンカー30からの無線パケットの受信に応じて、無線パケットの送信元であるアンカー30の無線端末IDと、送信元の無線端末および子機40の間のRSSIと、を記憶部43に出力する。また、通信制御部42は、AP20からのRSSI履歴送信要求パケットの受信に応じて、記憶部43が記憶するRSSI履歴に基づいてRSSI履歴送信応答パケットを作成し、無線部41へ出力する。RSSI履歴送信応答パケットは、送信元の無線端末IDと、子機40の無線端末IDと、送信元の無線端末および子機40との間のRSSIと、を含む。
記憶部43は、通信制御部42から出力される送信元無線端末IDとRSSIとをRSSI履歴として記憶する。記憶部43は、例えば、ROM(Read Only Memory)またはRAM(Random Access Memory)といったメモリ装置、或いは、HDD(Hard Disc Drive)またはSSD(Solid State Drive)といったストレ-ジ装置を含む。
<位置推定手順>
図6は、実施の形態1における位置推定装置10の処理フローの一例を示すフローチャ-トである。図6に示される処理フローの実行に先立ち、アンカーリスト141および閾値リスト145の所望位置推定精度の設定が完了している。アンカーリスト141および閾値リスト145の所望位置推定精度は、例えば、ユーザー入力部12を介してユーザーによって設定される。
まず、ステップS601において、位置推定部10のキャリブレ-ション部131および位置推定演算部135は、位置推定対象領域をエリアで区分けし、エリアごとのRSSI-距離変換テーブル143と優先順位リスト144を生成するキャリブレーションを実行する。ステップS601における処理の詳細については、図7~図12Bを参照して後述する。
次に、ステップS602において、位置推定部10の子機エリア推定部132および位置推定演算部135は、子機40の所在エリアの推定を行う。一例において、子機エリア推定部132および位置推定演算部135は、位置推定部10の通信部11が、位置推定要求パケットを受信したことに応じて、ステップS602以降が実行される。位置推定要求パケットは、例えば、無線通信の送信元である子機40の無線端末IDと、無線通信の宛先であるAP20の無線端末IDと、位置推定要求コマンドと、を含む。ステップS602における処理の詳細については、図13を参照して後述する。
次に、ステップS603において、位置推定部10の基準局選択部133および位置推定演算部135は、子機40の位置推定が収束する基準局を選択する。ステップS603における処理の詳細については、図14を参照して後述する。
次に、ステップS604において、位置推定部10の子機位置推定部134および位置推定演算部135は、子機40の所在エリアの基準局を用いて子機40の位置推定を行う。ステップS604における処理の詳細については、図16を参照して後述する。
次に、ステップS605において、位置推定装置10は、位置推定処理を終了するか否かを判断する。例えば、ユーザー入力部12が位置推定処理の終了コマンドを受けつけていた場合、位置推定装置10は、位置推定処理を終了すると判断する。
位置推定処理を終了すると判断した場合(ステップS605:Yes)、位置推定部10は、処理を終了する。位置推定処理を終了しないと判断した場合(ステップS605:
No)、位置推定部10は、ステップS604に処理を戻す。その結果、引き続き、子機40の位置推定処理が行われる。ステップS604を繰り返し実行することによって、位置推定部10は、子機40の動きを追跡できる。
<位置推定手順:キャリブレ-ション処理>
図7は、実施の形態1に係るキャリブレーション(図6のステップS601)における処理フローの一例を示すフローチャ-トである。
まず、ステップS701において、キャリブレーション部131は、位置推定対象領域を各エリア内にアンカー30が1台以上存在するように区分けし、エリアを設定する。なお、以下において、各エリアにアンカー30が1台ずつ存在し、各エリアの境界線がアンカー間を二等分するようにエリアを設定する例を説明する。
次に、ステップS702において、キャリブレ-ション部131は、アンカー30の間のRSSIを収集し、全アンカー30に関するRSSIテーブル142(図2参照)を生成し、記憶部14へ出力する。例えば、キャリブレ-ション部131は、各アンカー30の間のRSSIを収集するために、各アンカー30に宛てたRSSI履歴送信要求パケットを生成し、通信部11へ出力する。通信部11は、生成されたRSSI履歴送信要求パケットを、AP20を介して、各アンカー30へ送信する。次いで、通信部11は、AP20を介して、RSSI履歴送信応答パケットを、各アンカー30から受信し、受信したRSSI履歴送信応答パケットに基づいて、RSSI情報を取得する。次いで、キャリブレ-ション部131は、取得されたRSSI情報に基づいて、RSSIテーブル142を生成し、記憶部14へ出力する。
ステップS702の実行後のRSSIテーブル142の一例を<表1>に示す。
<表1>において、無線端末ID:1~Nは、アンカー30の無線端末IDを表し、無線端末ID:Mは、子機40の無線端末IDを表す。<表1>に示されるように、ステップS702において生成されたRSSIテーブル142には、アンカー30間のRSSI値が設定されている。
なお、全てのアンカー30の間のRSSI収集が困難な場合、例えば、アンカー30の数が多いためにRSSI収集に時間がかかる場合、または、相互の無線通信が不能なアンカー30の組が存在する場合がありうる。これらの場合、全てのアンカー30の間のRSSI収集に代えて、一部のアンカー30の間のRSSI収集を行ってもよい。
次に、ステップS703において、キャリブレ-ション部131は、エリアのインデックスの値iに1を設定する。
次に、ステップS704において、キャリブレ-ション部131は、エリアiにおけるRSSI-距離変換テーブル143を生成する。例えば、キャリブレ-ション部131は、エリアi内のアンカー30-iを送信側または受信側とするアンカー30の間のRSSIを、記憶部14が記憶するRSSIテーブル142より抽出する。次いで、キャリブレ-ション部131は、横軸に既知の各アンカー30間の距離と抽出されたRSSIとの関係を示す近似曲線を、例えば、最小二乗法を用いて計算する。
図8は、近似曲線の算出の一例を説明する図である。図8に示されるグラフは、横軸および縦軸に、それぞれ、距離(m)およびRSSI値(dBm)をとっている。アンカー30-1とアンカー30-2~30-6との間の距離を、それぞれ、r2~r6(m)とする。また、アンカー1を送信側または受信側とするアンカー30-2~アンカー30-6との間の抽出されたRSSIを、それぞれ、x2~x6(dBm)とする。図8には、座標値(rj,xj)を有する点Q(1,j)(j=2~6)がプロットされている。
近似曲線は、例えば、距離r(m)およびRSSI値x(dBm)として、
x=C1+C2×log(r) … (1)
と表される。ここで、C1およびC2は、rによらないパラメータを表す。そこで、点Q(1,j)(j=2~6)に対して、式(1)に最小二乗法を用いて、パラメータC1およびC2を決定することにより、近似曲線を算出できる。次いで、キャリブレ-ション部131は、導出した近似曲線に基づいてRSSI-距離変換テーブル143を生成する。
図9は、RSSI-距離変換テーブル143の一例を示す。例えば、キャリブレ-ション部131は、エリアiについて、-30dBmから0dBmまでの1dBm刻みのRSSIに対する距離rを算出し、RSSI-距離変換テーブル143の第i行に距離rの値を設定する。
再度、図7を参照する。次に、ステップS705において、キャリブレ-ション部131は、導出した近似曲線と収集したRSSIとの誤差(ずれ)が小さい順に、アンカー30-j(j≠i)の無線端末IDを、優先順位リスト144のエリアiにおける優先順位に設定する。以下、簡単の為、アンカー30-i(i=1,…,N)の無線端末IDを、iとする。
図10は、優先順位リスト144の一例を示す図である。例えば、エリア1(i=1)に対して、図8に示される点Q(1,j)(j=2~6)と、導出された近似曲線との誤差が小さい順にQ(1,j)を並べると、Q(1,2)、Q(1,3)、Q(1,5)、Q(1,4)、Q(1,6)となる。そこで、キャリブレ-ション部131は、優先順位リスト144のエリア1の行に、優先順位に従って無線端末ID2,3,5,4,6を設定する。
再度、図7を参照する。次に、ステップS706において、キャリブレ-ション部131は、エリアiにおける子機40の位置推定において位置推定結果が収束しているか否かを判断するのに用いられる閾値を算出する。
図11は、実施の形態1に係る収束判断の閾値算出(図7のステップS706)における処理フローの一例を示すフローチャートである。図12Aは、実施の形態1に係る閾値リスト145の一例である閾値リスト145Aを示す図である。閾値リスト145Aには、エリアごとにユーザーが所望する所望位置推定精度が設定されている。図11に示される処理フローに従って、閾値リスト145Aの閾値が算出される。
ステップS706-1において、キャリブレ-ション部131は、アンカー30-j(j≠i)から4台のアンカー30を選択して、4台のアンカー30からなる組み合わせを作成する。
次に、ステップS706-2において、位置推定演算部135は、4台のアンカー30からなる各組み合わせについて、位置推定結果候補の分散値と設置位置との誤差(ずれ)とを算出する。例えば、位置推定演算部135は、4台のアンカー30からなる各組み合わせの中の3台を用いて、アンカー30-iとのRSSIに基づく三点測位を行うことにより、アンカー30-iの位置推定結果候補を1つ算出できる。4台のアンカーの中から3台を選ぶ選び方は、全部で4通りあるので、位置推定演算部135は、4台のアンカー30からなる各組み合わせについて、合計で4つの位置推定結果候補を算出できる。位置推定演算部135は、4つの位置推定結果候補に基づいて、位置推定結果候補の分散値を算出する。さらに、位置推定演算部135は、4つの位置推定結果候補と既知であるアンカー30-iの設置位置とに基づいて、位置推定結果候補と設置位置とのずれを算出する。
次に、ステップS706-3において、キャリブレ-ション部131は、ステップS706-2において算出されたずれと位置推定結果候補の分散値とを対応付けることにより、位置推定精度に位置推定結果候補の分散値を対応付けた対応表を作成する。
次に、ステップS706-4において、キャリブレ-ション部131は、閾値リスト145を参照し、ユーザーが設定する所望の位置推定精度(または、所定の精度)に対応する位置推定結果候補の分散値を、エリアiにおける子機40の位置推定時の位置推定結果が収束しているか否かの判断に用いられる閾値とし、閾値リスト145に出力する。
図12Bは、実施の形態1に係る閾値リスト145の一例である閾値リスト145Bを示す図である。図11に示される処理フローに従って算出された閾値を閾値リスト145Aに出力した結果、閾値リスト145Bが生成される。
図7を、再度参照する。次に、ステップS707において、キャリブレ-ション部131は、ステップS704~S706の手順が、全てのエリアiに対して実行されたか否かを判断する。
ステップS704~S706の手順が、全てのエリアiに対して実行されていない場合(ステップS707:No)、キャリブレ-ション部131は、ステップS708において、インデックスiに次のエリアのインデックスの値i+1を設定し、ステップS704に処理を進める。
ステップS704~S706の手順が、全てのエリアiに対して実行された場合(ステップS707:Yes)、キャリブレ-ション部131は、キャリブレーション処理を終了する。
以上の手順により、全てのエリアiに対して、RSSI-距離変換テーブル143と優先順位リスト144とが生成される。また、エリアiごとに、RSSI-距離変換テーブル143との誤差が小さく、したがって、子機40の高精度な位置推定が期待できるアンカー30が、予め選択される。
<位置推定手順:子機の所在エリア判定処理>
図13は、実施の形態1に係る子機の所在エリア判定(図6のステップS602)における処理フローの一例を示すフローチャ-トである。
まず、ステップS1101において、子機エリア推定部132は、エリアのインデックスの値jに1を設定する。エリアjは、子機40を探索する対象となる探索エリアである。なお、探索エリアの選択順序は、部屋の出入り口付近等、子機40の位置推定開始時に、子機40が所在する所在エリアである可能性がより高いエリアをより優先してもよい。
次に、ステップS1102において、子機エリア推定部132は、エリアjにおける優先順位リスト144の上位より少なくとも3台以上の各アンカー30と子機40との間のRSSIを収集し、RSSIテーブル142(図2参照)を生成し、記憶部14へ出力する。
例えば、子機エリア推定部132は、対象となる各アンカー30と子機40との間のRSSIを収集するために、各アンカー30と子機40とに宛てたRSSI履歴送信要求パケットを生成し、通信部11へ出力する。通信部11は、生成されたRSSI履歴送信要求パケットを、AP20を介して、各アンカー30および子機40へ送信する。
次いで、通信部11は、AP20を介して、対象アンカー30と子機40からのRSSI履歴送信応答パケットを、各アンカー30および子機40から受信し、受信したRSSI履歴送信応答パケットに基づいて、RSSI情報を取得する。次いで、子機エリア推定部132は、取得されたRSSI情報に基づいて、RSSIテーブル142を生成し、記憶部14へ出力する。
ステップS1102の実行後のRSSIテーブル142の一例を<表2>に示す。
<表2>において、簡単の為、アンカー30の無線端末IDが、エリアjにおける優先順位順に、#1,#2,#3,#4,…,#Nであるものとする。<表2>に示されるように、ステップS1102において生成されたRSSIテーブル142には、上位3台のアンカー30と子機40との間のRSSI値が設定されている。
次に、ステップS1103において、位置推定演算部135は、ステップS1102において生成されたRSSIテーブル142に基づいて、子機40の位置推定を行う。
次に、ステップS1104において、子機エリア推定部132は、位置推定結果が示す子機40の位置が、エリアj内に含まれるか否かを判断する。
位置推定結果がエリアj内に含まれる場合(ステップS1104:Yes)、ステップS子機エリア推定部132は、子機40の所在エリアがエリアjであると推定し、子機の所在エリア判定処理を終了する。
位置推定結果がエリアj内に含まれない場合(ステップS1104:No)、ステップS1105において、子機エリア推定部132は、ステップS1102~S1104の手順が、全てのエリアに対して実行されたか否かを判断する。
ステップS1102~S1104の手順が、全てのエリアjに対して実行されていない場合(ステップS1105:No)、子機エリア推定部132は、ステップS1106において、次のエリアのインデックスの値jを設定し、ステップS1102に処理を進める。
ステップS1102~S1104の手順が、全てのエリアjに対して実行された場合(ステップS1105:Yes)、子機エリア推定部132は、ステップS1107に処理を進める。ステップS1107において、子機エリア推定部132は、ステップS1103における位置推定結果が探索エリアに最も近かったエリアjが、子機40の所在エリアであると推定し、子機の所在エリア判定処理を終了する。
上述したように、子機エリア推定部132は、各エリアjについて、優先順位リスト144の上位より3台の各アンカー30を用いることにより、子機40の所在エリアを精度良く推定できる。
<位置推定手順:基準局選択処理>
図14は、実施の形態1に係る基準局選択(図6のステップS603)における処理フローの一例を示すフローチャートである。
まず、ステップS1201において、基準局選択部133は、子機位置推定に用いる基準局の数kを4に設定する。
次に、ステップS1202において、基準局選択部133は、優先順位リスト144(図10参照)の、子機40の所在エリアにおける上位k台のアンカー30を基準局に選択する。
次に、ステップS1203において、基準局選択部133は、各基準局と子機40との間のRSSIを収集し、RSSIテーブル142(図2参照)を生成し、記憶部14へ出力する。例えば、基準局選択部133は、各基準局と子機40との間のRSSIを収集するために、各基準局と子機40とに宛てたRSSI履歴送信要求パケットを生成し、通信部11へ出力する。通信部11は、生成されたRSSI履歴送信要求パケットを、AP20を介して、各基準局および子機40へ送信する。次いで、通信部11は、AP20を介して、RSSI履歴送信応答パケットを、各基準局および子機40から受信し、受信したRSSI履歴送信応答パケットに基づいて、RSSI情報を取得する。次いで、基準局選択部133は、取得されたRSSI情報に基づいて、RSSIテーブル142を生成し、記憶部14へ出力する。
ステップS1203の実行後のRSSIテーブル142の一例を<表3>に示す。
<表3>においては、簡単の為、アンカー30の無線端末IDが、子機40の所在エリアにおける優先順位順に、#1,#2,#3,#4,…,#Nであるものとする。<表3>に示されるように、ステップS1203において生成されたRSSIテーブル142には、上位4台のアンカー30と子機40との間のRSSI値が設定されている。
次に、ステップS1204において、位置推定演算部135は、ステップS1203において生成されたRSSIテーブル142に基づいて、子機40の位置推定結果を算出する。例えば、位置推定演算部135は、RSSIテーブル142に基づいて、子機40の所在エリアのRSSI-距離変換テーブル143(図9参照)を用いて、各基準局および子機40の距離を算出する。
次いで、位置推定演算部135は、算出した距離に基づいて、例えば、三点測位の原理に基づいて、各基準局に対する子機40の相対位置を算出する。次いで、位置推定演算部135は、算出した相対位置とアンカーリスト141の位置情報とに基づいて、子機40の絶対位置の位置推定結果を算出する。ステップS1202において選択される基準局は、少なくとも4台であるので、位置推定演算部135は、子機40の4つの位置推定結果候補を算出し、位置推定結果候補の平均値と分散値を算出する。
次に、ステップS1205において、基準局選択部133は、基準局が5台以上の場合、基準局が4台になるまで、位置推定結果候補の分散値を拡大する要因となっているアンカー30を順に基準局から削除する。次いで、位置推定演算部135は、4台の基準局を用いて、位置推定結果候補の平均値と分散値とを算出する。
次に、ステップS1206において、基準局選択部133は、位置推定結果候補の分散値が所定の閾値よりも小さいかどうかを判断する。一例において、所定の閾値は、図11のステップS706-4において閾値リスト145に出力された閾値のうち、ユーザーが所望する位置推定精度(または、所定の精度)に最も近い位置推定精度に対応する閾値である。他の一例において、所定の閾値は、図13のステップS1103において、4台以上のアンカー30を用いて算出された子機40の位置推定結果候補の分散値である。
位置推定結果候補の分散値が所定の閾値よりも小さい場合(ステップS1206:Yes)、ステップS1205において算出された位置推定結果(位置推定結果候補の平均値と分散値)が収束していると判断してよい。したがって、基準局選択部133は、基準局選択処理を終了する。
位置推定結果候補の分散値が所定の閾値よりも小さくない場合(ステップS1206:No)、ステップS1205において算出された位置推定結果が収束していないと判断してよい。したがって、ステップS1207において、基準局選択部133は、子機40の所在エリアにおける優先順位リスト144に記載されているアンカー30が全て基準局に選択されたか否かを判断する。
優先順位リスト144に記載されているアンカー30が全て基準局に選択されていない場合(ステップS1207:No)、ステップS1208において、基準局選択部133は、子機位置推定に用いる基準局の数kを1つ増加し、ステップS1202に進む。
優先順位リスト144に記載されているアンカー30が全て基準局に選択された場合(ステップS1207:Yes)、ステップS1210において、基準局選択部133は、ステップS1205において算出された分散値が最小となるアンカー30の組み合わせを基準局に選択する。
ステップS1210が実行される場合、子機40の所在エリアにおいて、位置推定結果候補の分散値が所定の閾値よりも小さいアンカー30の組み合わせが存在しない。したがって、ステップS1211において、基準局選択部133は、ステップS1210において求められた最小の分散値を、子機40の所在エリアにおける、位置推定結果候補の分散値の新たな閾値とし、閾値リスト145を更新する。その後、基準局選択部133は、基準局選択処理を終了する。
図15A~図15Cを参照して、位置推定結果が収束するように基準局に用いるアンカー30の組み合わせを探索する流れを説明する。
図15Aは、実施の形態1に係る基準局選択における4つの位置推定結果候補の一例を示す図である。
まず、図14のステップS1204において、図15Aに示されるように、エリア2において、4台のアンカー30-1,30-3,30-7,30-4からなる基準局を用いて、4つの位置推定結果候補P(1,3,4),P(1,4,7),P(1,3,7),P(3,4,7)が算出される。ここで、P(m1,m2,m3)は、3台のアンカー30-m1,30-m2,30-m3を用いて推定した子機40の位置を表す。
図15Aに示されるように、位置推定結果候補の分散値Rdev1は、所定の閾値Rthよりも小さくない。したがって、この場合、図14のステップS1206において、位置推定結果が収束していないと判断してよい。したがって、図14のステップS1207およびステップS1208が実行され、基準局に用いるアンカー30の台数が1台増えて5台になる。
図15Bは、実施の形態1に係る基準局選択における5つの位置推定結果候補の一例を示す図である。
図14のステップS1204において、図15Bに示されるように、5台のアンカー30-1,30-3,30-7,30-4,30-6からなる基準局を用いて、4つの位置推定結果候補P(1,3,4),P(1,4,7),P(1,3,7),P(3,4,7)に加えて、6つの位置推定結果候補P(3,6,7),P(1,4,6),P(1,3,6),P(1,6,7),P(3,4,6),P(4,6,7)が算出される。
図15Cは、実施の形態1に係る基準局選択における位置推定結果候補を5つから4つに削除する一例を示す図である。
次いで、図14のステップS1205において、分散値を拡大する要因となるアンカー30-7が基準局から削除される。削除された結果、位置推定結果候補は、P(1,3,4),P(1,4,6),P(1,3,6),P(3,4,6)の4つとなる。図15Cに示されるように、位置推定結果候補の分散値Rdev2は、所定の閾値Rthよりも小さい。したがって、図14のステップS1206において、位置推定結果が収束したと判断してよく、アンカー30-1,30-3,30-4,30-6が、基準局に選択される。
上述のように、優先順位が上位のアンカー30より順に用いて子機40の位置推定に用い、位置推定結果が収束するアンカー30の組み合わせとなるようアンカー30を入れ替えることで、位置推定の精度を向上できるアンカー30の組み合わせを探索できる。
<位置推定手順:子機位置推定処理>
図16は、実施の形態1に係る子機位置推定(図6のステップS604)における処理フローの一例を示すフローチャートである。
まず、ステップS1401において、子機位置推定部134は、図6のステップS603において選択された基準局と子機40との間のRSSIを収集し、RSSIテーブル142(図2参照)を生成し、記憶部14へ出力する。例えば、子機位置推定部134は、図6のステップS603において選択された基準局と子機40との間のRSSIを収集するために、各基準局と子機40とに宛てたRSSI履歴送信要求パケットを生成し、通信部11へ出力する。
通信部11は、生成されたRSSI履歴送信要求パケットを、AP20を介して、各基準局および子機40へ送信する。次いで、通信部11は、AP20を介して、RSSI履歴送信応答パケットを、各基準局および子機40から受信し、受信したRSSI履歴送信応答パケットに基づいて、RSSI情報を取得する。次いで、子機位置推定部134は、取得されたRSSI情報に基づいて、RSSIテーブル142を生成し、記憶部14へ出力する。
ステップS1401の実行後のRSSIテーブル142の一例を<表4>に示す。
<表4>においては、簡単の為、基準局の無線端末IDが、#1,#2,#3,#4であるものとする。<表4>に示されるように、ステップS1401において生成されたRSSIテーブル142には、基準局と子機40との間のRSSI値が設定されている。
次に、ステップS1402において、位置推定演算部135は、ステップS1401において生成されたRSSIテーブル142に基づいて、子機40の位置推定結果を算出する。例えば、位置推定演算部135は、RSSIテーブル142に基づいて、子機40の所在エリアのRSSI-距離変換テーブル143(図9参照)を用いて、各基準局および子機40の距離を算出する。
次いで、位置推定演算部135は、算出した距離に基づいて、例えば、三点測位の原理に基づいて、各基準局に対する子機40の相対位置を算出する。次いで、位置推定演算部135は、算出した相対位置とアンカーリスト141の位置情報とに基づいて、子機40の絶対位置の位置推定結果を算出する。図6のステップS603において選択される基準局は、少なくとも4台であるので、位置推定演算部135は、子機40の4つの位置推定結果候補を算出し、位置推定結果候補の平均値と分散値を算出する。
次に、ステップS1403において、子機位置推定部134は、位置推定結果候補の分散値が所定の閾値よりも小さいかどうかを判断する。一例において、所定の閾値は、図11のステップS706-4において閾値リスト145に出力された閾値のうち、ユーザーが所望する位置推定精度に最も近い閾値である。他の一例において、所定の閾値は、図13のステップS1103において、4台以上のアンカー30を用いて算出された子機40の位置推定結果候補の分散値である。
位置推定結果候補の分散値が所定の閾値よりも小さくない場合(ステップS1403:No)、ステップS1402において算出された位置推定結果が収束していないと判断してよい。したがって、子機位置推定部134は、処理を図6のステップS603に戻す。
位置推定結果候補の分散値が所定の閾値よりも小さい場合(ステップS1403:Yes)、ステップS1404において、子機位置推定部134は、子機40の位置推定結果が、図6のステップ602で推定された子機40の所在エリアと同一かを判断する。
子機40の位置推定結果が、図6のステップ602で推定された子機40の所在エリアと同一でない場合(ステップS1404:No)、子機位置推定部134は、処理を図6のステップS602に戻す。この場合、子機エリア推定部132は、子機40の位置推定結果に基づいて、ステップS602における探索エリアの選択順序を決定してもよい。
子機40の位置推定結果が、図6のステップ602で推定された子機40の所在エリアと同一である場合(ステップS1404:Yes)、ステップS1405において、AP20を介して子機40に子機40の位置推定結果を通知する。例えば、子機位置推定部134は、位置推定結果通知パケットを通信部11に出力する。位置推定結果通知パケットは、例えば、無線通信の送信元であるAP20の無線端末IDと、無線通信の宛先である子機40の無線端末IDと、位置推定結果通知コマンドと、通知子機40の位置情報と、を含む。その後、子機位置推定部134は、子機位置推定処理を終了する。
上述のように、位置推定結果の収束状況に基づいて、位置推定と、必要に応じてエリア推定および基準局選択と、を繰り返し実行することにより、子機40の位置推定の精度を向上できる。
実施の形態1によれば、アンカー30-iおよび他のアンカー30-j(j≠i)の間のRSSI-距離変換特性に応じて、エリアiごとに高精度な位置推定が期待できるアンカー30を予め優先順位付けする。次いで、子機40の位置推定時に、位置推定結果が収束するまで、優先順位が上位のアンカー30から順に用いて位置推定を行うことにより、位置推定の精度を向上できる。
(その他の実施の形態)
上述の実施の形態1においては、アンカー30-iまたは子機40の位置の推定に、少なくとも3つのアンカー30-j(i≠j)との間のRSSIを用いている。これに代えて、アンカー30-iまたは子機40の位置の推定に、2つのアンカー30-j(i≠j)との間のRSSIを用いる実施の形態も考えられる。
上述の実施の形態1においては、アンカー30-iまたは子機40の位置の推定に、三点測位の原理を用いている。しかしながら、三点測位の原理に代えて、位置を推定するための他の原理を用いる実施の形態も考えられる。
上述の実施の形態1においては、位置推定結果候補のばらつきを示す値として、分散値を用いた。これに代えて、位置推定結果候補のばらつきを示す値として、標準偏差を用いてもよい。
上述の実施の形態においては、各構成要素に用いる「・・・部」という表記は、「・・・回路(circuitry)」、「・・・デバイス」、「・・・ユニット」、又は、「・・・モジュ-ル」といった他の表記に置換されてもよい。
以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、開示の趣旨を逸脱しない範囲において、上記実施の形態における各構成要素を任意に組み合わせてもよい。
本開示はソフトウェア、ハ-ドウェア、又は、ハ-ドウェアと連携したソフトウェアで実現することが可能である。上記実施の形態の説明に用いた各機能ブロックは、部分的に又は全体的に、集積回路であるLSIとして実現され、上記実施の形態で説明した各プロセスは、部分的に又は全体的に、一つのLSI又はLSIの組み合わせによって制御されてもよい。LSIは個々のチップから構成されてもよいし、機能ブロックの一部または全てを含むように一つのチップから構成されてもよい。LSIはデータの入力と出力を備えてもよい。LSIは、集積度の違いにより、IC、システムLSI、ス-パ-LSI、ウルトラLSIと呼称されることもある。集積回路化の手法はLSIに限るものではなく、専用回路、汎用プロセッサ又は専用プロセッサで実現してもよい。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。本開示は、デジタル処理又はアナログ処理として実現されてもよい。さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
本開示は、通信機能を持つあらゆる種類の装置、デバイス、システム(通信装置と総称)において実施可能である。通信装置の、非限定的な例としては、電話機(携帯電話、スマ-トフォン等)、タブレット、パ-ソナル・コンピュ-タ-(PC)(ラップトップ、デスクトップ、ノ-トブック等)、カメラ(デジタル・スチル/ビデオ・カメラ等)、デジタル・プレ-ヤ-(デジタル・オ-ディオ/ビデオ・プレ-ヤ-等)、着用可能なデバイス(ウェアラブル・カメラ、スマ-トウオッチ、トラッキングデバイス等)、ゲ-ム・コンソ-ル、デジタル・ブック・リ-ダ-、テレヘルス・テレメディシン(遠隔ヘルスケア・メディシン処方)デバイス、通信機能付きの乗り物又は移動輸送機関(自動車、飛行機、船等)、及び上述の各種装置の組み合わせがあげられる。
通信装置は、持ち運び可能又は移動可能なものに限定されず、持ち運びできない又は固定されている、あらゆる種類の装置、デバイス、システム、例えば、スマ-ト・ホ-ム・デバイス(家電機器、照明機器、スマ-トメ-タ-又は計測機器、コントロ-ル・パネル等)、自動販売機、その他IoT(Internet of Things)ネットワ-ク上に存在し得るあらゆる「モノ(Things)」をも含む。
通信には、セルラ-システム、無線LANシステム、通信衛星システム等によるデータ通信に加え、これらの組み合わせによるデータ通信も含まれる。また、通信装置には、本開示に記載される通信機能を実行する通信デバイスに接続又は連結される、コントロ-ラやセンサ等のデバイスも含まれる。例えば、通信装置の通信機能を実行する通信デバイスが使用する制御信号やデータ信号を生成するような、コントロ-ラやセンサが含まれる。
また、通信装置には、上記の非限定的な各種装置と通信を行う、あるいはこれら各種装置を制御する、インフラストラクチャ設備、例えば、基地局、アクセスポイント、その他あらゆる装置、デバイス、システムが含まれる。
本開示に係る位置推定装置は、複数の無線通信装置の間の無線電波の受信状態を示す第1の情報と、前記複数の無線通信装置の設置位置を示す第2の情報と、に基づいて、前記複数の無線通信装置の台数よりも少ない台数の第1の無線通信装置群を選択する選択回路と、前記第1の無線通信装置群に属する前記無線通信装置と無線端末との間の無線電波の受信状態を示す第3の情報と、前記第2の情報と、に基づいて、前記無線端末の位置を推定する推定回路と、を備える。
本開示に係る位置推定装置において、前記選択回路は、前記第1の情報と前記第2の情報とに基づいて、前記複数の無線通信装置に優先順位を付与し、前記優先順位に基づいて、前記第1の無線通信装置群を選択する。
本開示に係る位置推定装置において、前記選択回路は、前記第1の情報と前記第2の情報とに基づいて、前記設置位置に対する前記第1の情報の理論値を算出し、前記論理値に対する前記第1の情報のずれに基づいて、前記複数の無線通信装置に前記優先順位を付与する。
本開示に係る位置推定装置において、前記優先順位は、それぞれが1台の前記無線通信装置を含む複数のエリアの各エリアについて、前記各エリアに含まれる前記無線通信装置と前記各エリアに含まれない前記無線通信装置との間の前記第1の情報に基づいて付与される。
本開示に係る位置推定装置において、前記選択回路は、前記複数のエリアの各エリアにおいて、前記各エリアについて付与された前記優先順位に基づいて、前記複数の無線通信装置の台数よりも少ない台数の前記無線通信装置からなる第2の無線通信装置群を選択し、かつ、前記第2の無線通信装置群に属する前記無線通信装置と前記無線端末との間の受信状態を示す第4の情報と、に基づいて、前記無線端末が前記エリアに属するか否かを判断し、前記無線端末が属すると判断された前記エリアに付与された前記優先順位に基づいて、前記第1の無線通信装置群を選択する。
本開示に係る位置推定装置において、前記選択回路は、複数の前記第1の前記無線通信装置群を選択し、前記推定回路は、それぞれが1つの前記第1の無線通信装置群に対応する、前記無線端末の複数の位置を推定し、前記複数の位置の分散値が閾値を超えない場合、前記複数の位置に基づいて、前記無線端末の位置を推定する。
本開示に係る位置推定装置において、前記推定回路は、前記第1の情報および前記第2の情報に基づいて、前記複数の無線通信装置の各無線通信装置について複数の位置を推定し、前記複数の位置に基づいて、前記各無線通信装置の位置を推定し、前記設置位置とのずれの大きさが所定の精度に最も近い前記複数の位置の分散値を前記閾値に設定する。
本開示に係る位置推定装置において、前記推定回路は、前記第1の情報および前記第2の情報に基づいて、前記複数の無線通信装置の各無線通信装置について複数の位置を推定し、前記複数の位置に基づいて、前記各無線通信装置の位置を推定し、前記設置位置とのずれの大きさを算出し、前記ずれの大きさが所定の精度に最も近い前記複数の位置の分散値を前記閾値に設定する。
本開示に係る位置推定装置において、前記第1の情報は、RSSI(Received Signal Strength Indicator)である。
本開示に係る位置推定装置において、前記第1の情報は、前記無線電波の到来方向を示す量である。
本開示に係る位置推定装置において、前記第1の情報は、前記無線電波の到来時間を示す量である。
本開示に係る位置推定システムは、本開示に係る位置推定装置と、複数の無線通信装置と、前記位置推定装置と前記複数の無線通信装置との間の通信を中継するアクセスポイントと、を備える。