以下、図面と共に本発明に係る位置測位システム及び位置測位方法の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る位置測位システムである情報端末10を示す。情報端末10は、自端末10の位置を推定する(自端末10の位置測位を行う)装置である。情報端末10は、ユーザに所持(携帯)されて用いられる。具体的には、情報端末10は、スマートフォンを含む携帯電話機等に相当する。情報端末10によって推定される自端末10の位置は、例えば、当該位置に応じた情報の提供が行われる上述した位置情報サービスに用いられる。そのため、自端末10の位置測位は、継続的に繰り返し行われる。
情報端末10の位置測位によって得られる情報端末10の位置を示す情報は、抽象化された位置であるノードを示す情報である。ここでノードについて説明する。ノードは、ある範囲をもった建物内の位置や屋外の位置を抽象化したものである。例えば、図2に示すように建物内の各店舗や店前(の領域)が、それぞれ1つのノード20に対応する。また、建物の前の道路(の領域)が、1つのノード20に対応する。また、各ノード20間にはリンク(接続関係、繋がり)21が設定される。リンク21は、例えば、ユーザが移動できるか否かに基づいて設定される。例えば、通路に面する建物の出入口は、店前と繋がっている(通路から建物に入る場合には、まず店前に入る、又は建物から通路に出る場合には、店前から出る)ため、通路のノード20と店前のノード20との間にリンク21が設定される。また、建物内の各店舗の出入口は、店前と繋がっているため、各店舗のノード20と店前のノード20との間にリンク21が設定される。
ノード20及びリンク21には、それらの特徴を示す情報が対応付けられえる。例えば、リンク21には、距離が対応付けられる。特徴を示す情報については、より詳細に後述する。情報端末10による自端末10の位置の推定は、ノード20及びリンク21の情報が用いられて行われる。
引き続いて、情報端末10の本発明に係る機能について説明する。図1に示すように情報端末10は、GPS信号受信部11と、WiFi信号受信部12と、BLE信号受信部13と、グラフデータベース14と、センサ情報取得部15と、ノード特定部16と、制御部17とを備えて構成される。なお、情報端末10は、位置情報サービスの提供を受けるための機能を含む、通常、携帯電話機等が備える機能を有していてもよい。
GPS信号受信部11、WiFi信号受信部12及びBLE信号受信部13は、自端末10の位置であるノードの推定に用いられるセンサ情報を取得(検出、センシング)するセンサである。GPS信号受信部11は、GPS衛星からGPS信号を受信する。また、GPS信号受信部11は、受信したGPS信号に基づき測位演算を行って、センサ情報として自端末10の緯度及び経度を算出する。GPS信号受信部11は、算出した自端末10の緯度及び経度を示す情報を、センサ情報取得部15に出力する。GPS信号受信部11によって算出(取得)されるセンサ情報である緯度(latitude)及び経度(longitude)を示す情報の例(GPSテーブル)を図3(a)に示す。
WiFi信号受信部12は、近距離無線通信デバイス(WiFiアクセスポイント)からWiFi(登録商標)用の信号を受信する手段である。BLE信号受信部13は、近距離無線通信デバイス(Bluetooth(登録商標)デバイス、BLEデバイス)からBLE(BluetoothLow Energy)用の信号を受信する手段である。WiFi及びBLEは、近距離無線通信を行うための方式である。即ち、WiFi信号受信部12及びBLE信号受信部13は、近距離無線通信用の電波を受信する。WiFi信号受信部12及びBLE信号受信部13は、受信した電波に基づき、センサ情報として、互いに対応付けられた当該電波の送信元である近距離無線通信デバイスを一意に特定する情報、及び当該電波の受信強度を示す情報を取得する。
電波の送信元である近距離無線通信デバイスは、予め情報端末10の測位可能な範囲に固定されて設けられている。例えば、近距離無線通信デバイスは、ノードに対応付けられて設けられている。但し、全てのノードに対して近距離無線通信デバイスが設けられている必要はない。具体的には、GPS測位が難しい屋内のノードに対してのみ近距離無線通信デバイスが設けられ、屋外のノードには近距離無線通信デバイスが設けられていなくてもよい。近距離無線通信デバイスは、WiFi信号受信部12又はBLE信号受信部13によって受信可能な電波を送出している。近距離無線通信デバイスを一意に特定する情報としては、当該近距離無線通信デバイスに予め設定されたBSSID(Basic Service Set Identifier)を用いることができる。なお、BSSIDは、一般的にはMACアドレスとも呼ばれている。当該電波の受信強度を示す情報としては、RSSI(Received Signal Strength Indication,ReceivedSignal Strength Indicator)を用いることができる。
なお、情報端末10の付近に複数の近距離無線通信デバイスが設置されている場合には、同時に複数の近距離無線通信デバイスからの電波を受信することもある。そのため、1つのセンサ情報には、複数の近距離無線通信デバイスからの電波に係る受信強度を示す情報が含まれえる。また、電波の受信強度については、複数の異なるタイミングで受信された電波の受信強度(例えば、5回分の受信強度)を1つのセンサ情報とすることとしてもよい。WiFi信号受信部12及びBLE信号受信部13は、取得した当該電波の送信元である近距離無線通信デバイスを特定する情報、及び当該電波の受信強度を示す情報を、WiFi/BLE信号情報リストとしてセンサ情報取得部15に出力する。WiFi信号受信部12及びBLE信号受信部13によって取得されるセンサ情報である、互いに対応付けられたBSSID及びRSSI(WiFi/BLE信号情報リスト)の例を図3(b)に示す。
上記の通り、情報端末10は、複数種類のセンサ情報を取得するセンサ11,12,13を備えている。また、GPS信号受信部11、後述するように制御部17からの制御を受けて行われる。なお、GPS信号受信部11、WiFi信号受信部12及びBLE信号受信部13が、制御部17からの制御を受けてセンサ情報の取得を行う(信号の受信等を行う)際、情報端末10では当該取得に伴う電力消費がなされる。
グラフデータベース14は、センサ11,12,13によって取得されたセンサ情報から情報端末10の位置を示すノードを特定する(抽象化)ための変換情報、及び当該ノード間のリンクを示すリンク情報であるリンクテーブル14bを記憶するデータベースである。グラフデータベース14は、変換情報をノードテーブル14aによって記憶する。グラフデータベース14は、リンク情報をリンクテーブル14bによって記憶する。
ノードテーブル14aは、例えば、図4(a)に示す情報を格納するテーブルである。図4(a)に示すように、ノードテーブル14aは、ノード毎にノードID、中心緯度経度、半径(m)、平均滞在時間(秒)、BSSID、th1、th2及びth3の情報をそれぞれ対応付けて格納する。ノードIDは、ノードを一意に特定するための情報であるID番号である。中心緯度経度は、当該ノードの中心の位置の緯度及び経度を示す情報である。半径(m)は、当該ノードの範囲を示す当該ノードの中心からの半径を示す情報である。平均滞在時間(秒)は、ユーザが当該ノードに滞在する時間の平均(例えば、過去にユーザがそのノードに滞在した時間の平均)を示す情報である。BSSIDは、当該ノードに対応付けられる近距離無線通信デバイスのBSSIDである。th1、th2及びth3は、ノードの特定の際に用いられる値である。これらについては、より詳細には後述する。
上記の情報のうち、ノードID、中心緯度経度及び半径(m)の情報(ノードテーブル14aの1列目から3列目までの情報)は、全てのノードにおいて必須の情報である。また、上記の情報のうち、BSSID、th1、th2及びth3の情報(ノードテーブル14aの5列目から8列目までの情報)は、ノードに対して近距離無線通信デバイスが対応付けられて設置されている場合に格納される。
リンクテーブル14bは、例えば、図4(b)に示す情報を格納するテーブルである。図4(b)に示すように、リンクテーブル14bは、互いに隣接する2つのノードの一方のノード毎にノードID、隣接ノードID、中心間の距離(m)及び高低差(m)の情報をそれぞれ対応付けて格納する。ノードIDは、当該一方のノードを一意に特定するための情報であるID番号である。隣接ノードIDは、当該一方のノードに隣接するノードを一意に特定するための情報であるID番号である。中心間の距離(m)は、隣接する2つのノード(1列目のノードID及び2列目の隣接ノードIDによって示される2つのノード)の中心緯度経度間の距離を示す情報である。高低差(m)は、当該隣接する2つのノードの中心緯度経度間の高度差を示す情報である。上記のようにリンクテーブル14bには、リンク情報として、どのノード同士がリンクされているかに加えて、リンクされているノード間の位置関係を示す情報が格納されている。
ノードテーブル14a及びリンクテーブル14bに格納される情報は、例えば、ユーザ又は情報端末10に対して移動体通信機能を提供する通信事業者によって予め入力される。
センサ情報取得部15は、情報端末10のセンサ11,12,13によって取得されたセンサ情報を取得するセンサ情報取得手段である。センサ情報取得部15は、センサ11,12,13からセンサ情報を入力することで、センサ情報を取得する。具体的には、センサ情報取得部15は、GPS信号受信部11からは、上述したようにセンサ情報として緯度及び経度を示す情報(例えば、図3(a)に示す情報)を取得する。センサ情報取得部15は、WiFi信号受信部12及びBLE信号受信部13からは、上述したように互いに対応付けられたBSSID及びRSSIを含むWiFi/BLE信号情報リスト(例えば、図3(b)に示す情報)を取得する。即ち、センサ情報が近距離無線通信用の電波の受信強度を示す情報である場合には、センサ情報取得部15は、複数のタイミングでの受信強度を示す情報を取得してもよい。センサ情報取得部15は、取得したセンサ情報をノード特定部16に出力する。
ノード特定部16は、センサ情報取得部15から入力されたセンサ情報から、自端末10が位置するノードを特定するノード特定手段である。ノード特定部16は、グラフデータベース14のノードテーブル14aによって記憶された変換情報に基づいて当該ノードを特定する。即ち、ノード特定部16は、自端末10の位置の抽象化を行う。具体的には、ノード特定部16は、以下のようにノードを特定する。まず、WiFi信号受信部12及びBLE信号受信部13によって取得されたセンサ情報であるBSSID及びRSSIを含むWiFi/BLE信号情報リストから、ノードを特定する場合について説明する。
ノード特定部16は、ノードテーブル14aを参照して、WiFi/BLE信号情報リストに含まれるBSSID(取得したBSSID)のうち、ノードテーブル14aのBSSIDの列の情報に含まれてないBSSID(ノードテーブル14aに記載のない未知のBSSID)があるか判断する。ノード特定部16は、そのようなBSSIDがあると判断すると、そのBSSIDに係る情報を当該リストから削除する。この処理を行った後に、当該リストに要素(1つのBSSIDが1つの要素に相当)が残っていない場合には、ノード特定部16は、当該リストからはノードが特定できなかったと判定して、当該リストに基づくノードの特定処理(抽象化処理)を終了する。
上記の処理を行った後に、WiFi/BLE信号情報リストに要素が残っている場合には、ノード特定部16は、当該リストに含まれる各BSSIDに対応付けられたRSSIのBSSID毎の平均を算出する。ノード特定部16は、当該BSSIDに対応付けてノードテーブル14aに格納されているth1の情報を参照する。ノード特定部16は、BSSID毎に、算出したRSSIの平均と参照したth1とを比較し、平均がth1を超えているか否か(平均がth1を上回っているか否か)を判断する。なお、上記の判断基準は、超えているか否かではなく、以上であるか否かとしてもよい(以下の判断基準についても同様)。ノード特定部16は、平均がth1を超えてないと判断したBSSIDに係る情報を当該リストから削除する。この処理を行った後に、当該リストに要素が残っていない場合には、ノード特定部16は、当該リストからはノードが特定できなかったと判定して、当該リストに基づくノードの特定処理(抽象化処理)を終了する。
当該リストに要素が残っており、かつ当該リストに含まれる要素が1つのみであった場合、ノード特定部16は、ノードテーブル14aを参照して、当該BSSIDに対応するノードIDを自端末10が位置するノード(ユーザが滞在中のノード)のノードIDと特定する。
当該リストに含まれる要素が2つ以上存在した場合、ノード特定部16は、それらの要素のうち、算出したRSSIの平均が上位2つのBSSIDを抽出する。ノード特定部16は、抽出した2つのBSSIDに対応付けられた個々のRSSIのうち、それぞれの最大値の間の差分を算出する。この差分をDiffMaxと呼ぶ。ノード特定部16は、差分に係る2つのBSSIDのうち、最も大きいRSSI(最大値)に対応付けられたBSSIDに対応付けてノードテーブル14aに格納されているth2の情報を参照する。ノード特定部16は、算出した差分と参照したth2とを比較し、差分がth2を超えているか否か(差分がth2を上回っているか否か)を判断する。
ノード特定部16は、差分がth2を超えていると判断した場合、ノードテーブル14aを参照して、最も大きいRSSI(最大値)に対応付けられたBSSIDに対応するノードIDを自端末10が位置するノード(ユーザが滞在中のノード)のノードIDと特定する。ノード特定部16は、差分がth2を超えていないと判断した場合、続いて、上記のように抽出した2つのBSSIDに対応付けられたRSSIの平均の間の差分を算出する。この差分をDiffAveと呼ぶ。ノード特定部16は、差分に係る2つのBSSIDのうち、最も大きいRSSIの平均値に対応付けられたBSSIDに対応付けてノードテーブル14aに格納されているth3の情報を参照する。ノード特定部16は、算出した差分と参照したth3とを比較し、差分がth3を超えているか否か(差分がth3を上回っているか否か)を判断する。
ノード特定部16は、差分がth3を超えていると判断した場合、ノードテーブル14aを参照して、最も大きいRSSIの平均値に対応付けられたBSSIDに対応するノードIDを自端末10が位置するノード(ユーザが滞在中のノード)のノードIDと特定する。ノード特定部16は、差分がth3を超えていないと判断した場合、ノード特定部16は、当該リストからはノードが特定できなかったと判定して、当該リストに基づくノードの特定処理(抽象化処理)を終了する。上記のようにノード特定部16は、複数の受信強度の平均及び差分から、自端末10が位置するノードを特定する。ノード特定部16は、近距離無線通信用の電波から得られたセンサ情報に基づいて特定した自端末10のノードを示す情報であるノードIDを制御部17に出力する。なお、ノード特定部16は、WiFi/BLE信号情報リストからはノードが特定できなかった場合には、その旨を示す情報(例えば、NULL)を制御部17に出力することとしてもよい。
続いて、GPS信号受信部11によって取得されたセンサ情報である緯度及び経度を示す情報から、ノードを特定する場合について説明する。ノード特定部16は、ノードテーブル14aを参照して、各ノードの中心緯度経度及び半径(m)の情報を取得する。ノード特定部16は、取得した各ノードの中心緯度経度及び半径(m)の情報から、各ノードの範囲を算出する。ノード特定部16は、GPS信号受信部11から入力された情報によって示される緯度及び経度が、算出された各ノードの範囲内に含まれるか否かを判断する。ノード特定部16は、GPS信号受信部11によって取得された情報によって示される緯度及び経度を範囲に含むノードを、自端末10が位置するノード(ユーザが滞在中のノード)と特定する。
ノード特定部16は、GPSによって得られたセンサ情報に基づいて特定した自端末10のノードを示す情報であるノードIDを制御部17に出力する。なお、GPSによって得られたセンサ情報に基づくノードの特定は、近距離無線通信用の電波から得られたセンサ情報からノードが特定できなかった場合に行われることとしてもよい。
ノード特定部16によって特定されたノードの情報は、上述した位置情報サービスに用いられる。ノード特定部16は、ユーザが位置情報サービスを受けられるようにノードを他のモジュールや他の装置に出力(送信)する。
制御部17は、グラフデータベース14のリンクテーブル14bによって記憶されたリンク情報、及びノード特定部16によって特定されたノードに基づいて、自端末10におけるセンサ11,12,13によるセンサ情報の取得を制御する(センサ動作モードを変更する)制御手段である。制御部17は、具体的には以下のように制御を行う。
制御部17は、リンク情報によって示される、ノード特定部16によって特定されたノード(自端末10が位置するノード)とリンクされている(繋がっている)別のノードとの間の位置関係に基づいて、センサ11,12,13によるセンサ情報の取得の時間間隔(センサ取得タイミング(周期))を決定する。また、時間間隔の決定は、予め設定された自端末10のユーザの移動速度にも基づいて、行われてもよい。また、時間間隔の決定は、リンク情報によって示される、ノード特定部16によって特定されたノード(自端末10が位置するノード)におけるユーザの滞在時間にも基づいて、行われてもよい。
より具体的には、制御部17は、以下のようにセンサ情報の取得の時間間隔(センサ取得タイミング)、即ち、次のセンサ情報の取得までの時間を算出する。制御部17は、リンクテーブル14bを参照して、ノード特定部16によって特定されたノード(滞在中ノード)と隣接するノード(隣接ノード)を特定する。制御部17は、隣接ノード毎に移動コストcostを下式によって算出する。
上式において、lengthは、隣接ノードとの中心間の距離、Δaltitudeは、隣接ノードとの高低差である。これらの情報は、リンクテーブル14bを参照することで得られる。average_waiking_speedは、人の平均徒歩速度(ユーザの移動速度)である。例えば、average_waiking_speedは、1.1(m/s)とされる。wは、高低差を考慮するための重みである。例えば、wは、1.5とされる。これらの情報は、例えば、ユーザ又は情報端末10に対して移動体通信機能を提供する通信事業者によって予め情報端末10に入力されており、制御部17に記憶されている。
制御部17は、全ての隣接ノードの中で最小の移動コストmin_costを決定し、下式によってセンサ取得タイミングt(秒)を算出する。
上式において、average_stay_timeは滞在中ノードの平均滞在時間である。この情報は、リンクテーブル14bを参照することで得られる。p,qは、それぞれmin_cost及びaverage_stay_timeのセンサ取得タイミングに対する重みである。例えば、p,qは、それぞれ0.5,0.5とされる。これらの情報は、例えば、ユーザ又は情報端末10に対して移動体通信機能を提供する通信事業者によって予め情報端末10に入力されており、制御部17に記憶されている。
制御部17は、算出したセンサ取得タイミングt(秒)に基づいて、センサ11,12,13によるセンサ情報の取得を制御する。具体的には、制御部17は、センサ11,12,13に対する前回のセンサ情報の取得の指示から、算出したセンサ取得タイミングt(秒)で示される時間が経過したら、センサ11,12,13に対してセンサ情報の取得を指示する。
制御部17は、全てのセンサ11,12,13に対して同時にセンサ情報の取得を指示することとしてもよい。あるいは、制御部17は、まず、WiFi信号受信部12及びBLE信号受信部13に対してセンサ情報の取得を指示することとしてもよい。WiFi信号受信部12及びBLE信号受信部13によって取得されたセンサ情報によって自端末10のノードが特定できなかった場合(ノード特定部16からその旨を示す情報(例えば、NULL)が制御部17に出力された場合)、制御部17は、GPS信号受信部11に対してセンサ情報の取得を指示することとしてもよい。
また、制御部17は、リンク情報によって示される、ノード特定部16によって特定されたノード(自端末10が位置するノード)とリンクされている(繋がっている)別のノードの特徴に基づいて、センサ情報を取得するセンサ11,12,13の種類を決定することとしてもよい。ノードの特徴は、例えば、ノードが屋内のノード(屋内ノード)であるか、屋外のノード(屋外ノード)であるかという特徴である。
上記のように、制御部17は、リンクテーブル14bを参照することで、ノード特定部16によって特定されたノード(滞在中ノード)と隣接するノード(隣接ノード)を特定することができる。上述したように屋内ノードに対して近距離無線通信デバイスが設けられており、屋外ノードに対して近距離無線通信デバイスが設けられていないこととしてもよい。従って、ノードテーブル14aのBSSIDの列に情報が格納されているノードは屋内ノードであり、BSSIDの列に情報が格納されていないノード(図4(a)の例ではBSSIDの列が「−」となっているノード)は屋内ノードであると判断することができる。制御部17は、特定した隣接ノードについて、ノードテーブル14aを参照して、BSSIDの列に情報が格納されているか否かを確認することで、当該隣接ノードが屋外ノードであるか、屋内ノードであるかを判断する。
隣接ノードに屋内ノードが含まれていれば(ユーザが現在滞在しているノードから屋内ノードへの遷移が可能であれば)、制御部17は、WiFi信号受信部12及びBLE信号受信部13に対してセンサ情報の取得を指示する。一方で、隣接ノードに屋内ノードが含まれていなければ(ユーザが現在滞在しているノードから遷移可能なノードが屋外ノードのみであれば)、制御部17は、WiFi信号受信部12及びBLE信号受信部13に対してセンサ情報の取得を指示せず、GPS信号受信部11に対してセンサ情報の取得を指示する。以上が、情報端末10の本発明に係る機能である。
引き続いて、図5に本実施形態に係る情報端末10のハードウェア構成を示す。図5に示すように、情報端末10は、CPU(Central Processing Unit)101、RAM(RandomAccess Memory)102、ROM(Read Only Memory)103、操作部104、ディスプレイ105、GPS受信モジュール106、GPS受信用アンテナ107、近距離無線通信モジュール108及び近距離無線通信用アンテナ109等のハードウェアにより構成されている。なお、近距離無線通信モジュール108及び近距離無線通信用アンテナ109については、WiFi用及びBLE用それぞれのものが設けられていてもよい。これらの構成要素が動作することにより、上述した機能が発揮される。以上が、情報端末10の構成である。
引き続いて、図6〜図9のフローチャートを用いて、本実施形態に係る位置測位システムである情報端末10で実行される処理(情報端末10の動作方法)である位置測位方法を説明する。本処理は、例えば、ユーザの情報端末10に対する操作によって、情報端末10の位置測位が継続的に繰り返し行われる状態となっている場合に行われる。具体的には、情報端末10が、継続的な位置を必要とする位置情報サービスを利用する状態となっている場合等である。
まず、図6のフローチャートを用いて、本処理全体について説明する。本処理では、まず、GPS信号受信部11、WiFi信号受信部12及びBLE信号受信部13によって、センサ情報が取得される。GPS信号受信部11によって取得されるセンサ情報は、上述したように図3(a)に示すような自端末10の緯度及び経度を示す情報である。WiFi信号受信部12及びBLE信号受信部13によって取得されるセンサ情報は、上述したように図3(b)に示すようなWiFi/BLE信号情報リストである。
取得されたセンサ情報は、センサ情報取得部15に出力される(S1、センサ情報取得ステップ)。なお、センサ情報の取得は、制御部17の制御によって行われて、当該取得時のみに電力消費がされる。なお、1度目のセンサ11,12,13によるセンサ情報の取得は、例えば、情報端末10の位置測位が継続的に繰り返し行われる状態となったことをトリガとして行われてもよい。具体的には、1度目の最初のセンサ情報の取得は、上述したようにWiFi信号受信部12及びBLE信号受信部13によって行われてもよい。また、GPS信号受信部11によるセンサ情報の取得は、WiFi信号受信部12及びBLE信号受信部13によって自端末10が位置するノードを特定できなかった場合(一旦、WiFi信号受信部12及びBLE信号受信部13によって取得されたセンサ情報からノードの特定の処理(S2)が行われた後)に行われてもよい。
入力されたセンサ情報は、センサ情報取得部15によって取得されて、更にノード特定部16に出力される。続いて、ノード特定部16によって、センサ情報取得部15から入力されたセンサ情報から、自端末10が位置するノードが特定される(自端末10の位置の抽象化が行われる)(S2、ノード特定ステップ)。ノードの特定は、グラフデータベース14のノードテーブル14aによって記憶された変換情報に基づいて行われる。ノードの特定処理については、図7及び図8のフローチャートを用いて、詳細に後述する。
特定されたノードに係るノードIDは、上述したように例えば、位置情報サービスにおいて利用される。また、特定されたノードIDは、ノード特定部16から制御部17に出力される。続いて、制御部17によって、グラフデータベース14のリンクテーブル14bによって記憶されたリンク情報、及びノード特定部16によって特定されたノードに基づいて、自端末10におけるセンサ11,12,13によるセンサ情報の取得が制御される。具体的には、制御部17によって、リンク情報によって示される、特定されたノードとリンクされている別のノードとの間の位置関係に基づいて、センサ11,12,13によるセンサ情報の取得の時間間隔であるセンサ取得タイミングtが算出される(S3、制御ステップ)。センサ取得タイミングtの算出処理については、図9のフローチャートを用いて、詳細に後述する。
続いて、制御部17によって、センサ11,12,13による前回のセンサ情報の取得から(センサ11,12,13に対する前回のセンサ情報の取得の指示から)、算出したセンサ取得タイミングt(秒)で示される時間が経過したことが判断され、当該判断がなされるとセンサ11,12,13に対してセンサ情報の取得が指示される(S4、制御ステップ)。当該指示を受けたセンサ11,12,13によって、再度、センサ情報の取得が行われ、以降の処理(S1〜S4)が繰り返される。この繰り返し(ループ)は、情報端末10の動作が停止する等の、情報端末10の位置測位が継続的に繰り返し行われる状態が終了するまで行われる。以上が、情報端末10で実行される処理全体である。
引き続いて、図7及び図8のフローチャートを用いて、ノード特定部16によるノードの特定処理(抽象化処理、図6のS2)について説明する。本処理では、まず、センサ情報取得部15から、WiFi信号受信部12及びBLE信号受信部13によって取得されたセンサ情報であるWiFi/BLE信号情報リストを入力する(受け取る)(S21)。続いて、ノードテーブル14aが参照されて、WiFi/BLE信号情報リストに含まれるBSSIDのうち、ノードテーブル14aのBSSIDの列の情報に含まれてないBSSID(ノードテーブル14aに記載のない未知のBSSID)があるかが判断される。そのようなBSSIDがあると判断されると、そのBSSIDに係る情報が当該リストから削除される(S22)。
この処理が行われた後に、当該リストに要素が残っていない場合(S23のNo)には、当該リストからはノードが特定できなかったと判定されて、当該リストに基づくノードの特定処理(抽象化処理)が終了される。その場合には、その旨を示す情報(例えば、NULL)が制御部17に出力される(S24)。
S22の処理が行われた後に、当該リストに要素が残っている場合(S23のYes)には、当該リストに含まれる各BSSIDに対応付けられたRSSIのBSSID毎の平均が算出される(S25)。続いて、RSSIの平均が用いられて、閾値処理が行われて、自端末10が位置するノードが特定される(S26)。
この閾値処理(S26)を、図8のフローチャートを用いて説明する。まず、平均が算出されたRSSIに係るBSSIDに対応付けてノードテーブル14aに格納されているth1の情報が参照される。続いて、BSSID毎に、算出されたRSSIの平均と参照したth1とが比較されて、平均がth1を超えているか否か(平均がth1を上回っているか否か)が判断される(S261)。平均がth1を超えてないと判断されたBSSIDに係る情報は、WiFi/BLE信号情報リストから削除される。この処理を行った後に、当該リストに要素が残っていない場合(S261のNo)には、当該リストからはノードが特定できなかったと判定されて、当該リストに基づくノードの特定処理(抽象化処理)が終了される。その場合には、その旨を示す情報(例えば、NULL)が制御部17に出力される(S262)。
上記の処理を行った後に、当該リストに要素が残っている場合(S261のYes)には、当該リストに含まれる要素が2つ以上であるか否かが判断される(S263)。当該リストに含まれる要素が1つのみであった場合(S263のNo)、ノードテーブル14aが参照されて、当該BSSIDに対応するノードIDが、自端末10が位置するノード(ユーザが滞在中のノード)のノードIDと特定される(S264)。
当該リストに含まれる要素が2つ以上存在した場合(S263のYes)、それらの要素のうち、算出されたRSSIの平均が上位2つのBSSIDが抽出される。抽出された2つのBSSIDに対応付けられた個々のRSSIのうち、それぞれの最大値の間の差分であるDiffMaxが算出される。また、差分に係る2つのBSSIDのうち、最も大きいRSSI(最大値)に対応付けられたBSSIDに対応付けてノードテーブル14aに格納されているth2の情報が参照される。算出された差分と参照されたth2とが比較されて、差分がth2を超えているか否か(差分がth2を上回っているか否か)が判断される(S265)。差分がth2を超えていると判断された場合(S265のYes)、ノードテーブル14aが参照されて、最も大きいRSSI(最大値)に対応付けられたBSSIDに対応するノードIDが、自端末10が位置するノード(ユーザが滞在中のノード)のノードIDと特定される(S266)。
差分がth2を超えていないと判断された場合(S265のNo)、上記のように抽出された2つのBSSIDに対応付けられたRSSIの平均の間の差分であるDiffAveが算出される。また、差分に係る2つのBSSIDのうち、最も大きいRSSIの平均値に対応付けられたBSSIDに対応付けてノードテーブル14aに格納されているth3の情報が参照される。算出された差分と参照されたth3とを比較されて、差分がth3を超えているか否か(差分がth3を上回っているか否か)が判断される(S267)。差分がth3を超えていると判断された場合(S267のYes)、ノードテーブル14aが参照されて、最も大きいRSSIの平均値に対応付けられたBSSIDに対応するノードIDが、自端末10が位置するノード(ユーザが滞在中のノード)のノードIDと特定される(S268)。
差分がth3を超えていないと判断された場合(S267のNo)、当該リストからはノードが特定できなかったと判定されて、当該リストに基づくノードの特定処理(抽象化処理)が終了される。その場合には、その旨を示す情報(例えば、NULL)が制御部17に出力される(S262)。S264,S266,S268の何れかにおいてノードIDが特定された場合には、当該ノードIDが制御部17に出力される(S269)。以上が、閾値処理(S26)である。
続いて、閾値処理(S26)以降の処理を図7に戻り説明する。上記の処理(S21〜S26)で、WiFi/BLE信号情報リストから、自端末10が位置するノード(ユーザが滞在中のノード)が特定(決定)できた場合(S27のNo)、ノード特定部16によるノードの特定処理(抽象化処理、図6のS2)は終了する。
上記の処理(S21〜S26)で、WiFi/BLE信号情報リストから、自端末10が位置するノード(ユーザが滞在中のノード)が特定(決定)できなかった場合(S27のYes)、センサ情報取得部15から、GPS信号受信部11によって取得されたセンサ情報である緯度及び経度を示す情報を入力する(S28)。なお、GPS信号受信部11による緯度及び経度の取得(GPS信号の受信及び測位演算)は、WiFi/BLE信号情報リストからノードが特定できなかった旨の入力がなされた制御部17の制御によって行われてもよい。即ち、GPS信号受信部11によるセンサ情報の取得は、WiFi信号受信部12及びBLE信号受信部13によって取得されたセンサ情報からノードが特定できなかった場合に行われてもよい。
続いて、ノードテーブル14aが参照されて、各ノードの中心緯度経度及び半径(m)の情報を取得する。ノード特定部16は、当該情報に基づいて、GPS信号受信部11によって取得された情報によって示される緯度及び経度から、自端末10が位置するノード(ユーザが滞在中のノード)が特定される(S29)。特定されたノードIDは制御部17に出力される。以上が、ノード特定部16によるノードの特定処理である。
引き続いて、図9のフローチャートを用いて、制御部17によるセンサ取得タイミングtの算出処理(図6のS3)について説明する。本処理では、ノード特定部16によって特定されたノードを示すノードIDが入力される(S31)。続いて、リンクテーブル14bが参照して、ノード特定部16によって特定されたノード(滞在中ノード)と隣接するノード(隣接ノード)が特定される。続いて、隣接ノード毎に移動コストcostが下式によって算出される。
続いて、全ての隣接ノードの中で最小の移動コストmin_costが決定される(S33)。続いて、下式によってセンサ取得タイミングt(秒)が算出される(S34)。
以上が、制御部17によるセンサ取得タイミングtの算出処理である。
上述したように本実施形態では、情報端末10の位置として抽象化された位置であるノードが特定される。ノードの特定は、情報端末10のセンサ11,12,13によって取得されたセンサ情報に基づいて行われる。本実施形態では、情報端末10が位置するノードとして特定されたノードに基づいて、情報端末10によるセンサ情報の取得が制御される。従って、情報端末10が位置するノードに応じて、無駄な電力消費を抑えるようにセンサ情報の取得を行わせることができる。即ち、本実施形態によれば、継続的な情報端末10の位置測位を適切に行いつつ、情報端末10の電力消費を低減することができる。
具体的には、上述したようにセンサ取得タイミングを決定することとしてもよい。この構成によれば、情報端末10によるセンサ情報の取得の時間間隔を適切なものとすることができる。例えば、情報端末10が位置するノードと隣接するノードとが離れている場合、即ち、直ぐにユーザが位置するノードが変わりえない場合は、当該時間間隔を大きくし、不要なセンサ情報の取得による電力消費を防止することができる。一方で、情報端末10が位置するノードと隣接するノードとが近接しており場合、即ち、直ぐにユーザが位置するノードが変わりえる場合は、当該時間間隔を小さくし、必要な位置測位を行わせることができる。これにより、継続的な情報端末10の位置測位を適切に行いつつ、情報端末10の電力消費を低減することができる。
また、上述したようにセンサ取得タイミングの算出において、各ノードにおけるユーザの滞在時間やユーザの移動速度を用いることとしてもよい。これらの構成によれば、当該時間間隔を更に適切なものとすることができる。但し、これらの情報を用いなくても、センサ取得タイミングを決定することができる場合には、必ずしもこれらの情報を用いる必要はない。
また、上述したように情報端末10が位置するノードと隣接するノードの特徴(例えば、当該ノードが屋内ノード及び屋外ノードの何れか)に基づいて、センサ情報の種類を決定することとしてもよい。この構成によれば、センサ情報を取得するセンサの種別を適切なものとすることができる。即ち、情報端末10が位置するノードを特定しやすいセンサ情報を取得することができる。これにより、継続的な情報端末の位置測位を適切に行いつつ、不要なセンサ情報の取得を防止して、情報端末の電力消費を低減することができる。
また、上述したように近距離無線通信用の電波の受信強度の平均及び差分から、情報端末10が位置するノードを特定することとしてもよい。この構成によれば、近距離無線通信用の電波の受信強度に基づいて、適切に情報端末10が位置するノードを特定することができる。
なお、上述した実施形態では、位置測位システムは、位置測位対象となる情報端末10自身であった。しかし、必ずしも、位置測位システムは、必ずしも、情報端末10でなくてもよい。例えば、情報端末10が移動体通信機能を具備している場合には、位置測位システムは、情報端末10との間で移動体通信網を介して情報の送受信を行うことができる位置測位サーバであってもよい。即ち、サーバクライアントモデルによる実装でもよい。その場合、情報端末は、本実施形態と同様にセンサ11,12,13を備える。位置測位サーバは、情報端末からセンサ11,12,13によって取得されたセンサ情報を受信し、受信したセンサ情報に基づいてノードの特定を行うと共に情報端末におけるセンサ情報の取得の制御を行う。その場合、位置測位サーバは、本実施形態におけるグラフデータベース14、センサ情報取得部15、ノード特定部16及び制御部17に相当する機能部を備えている。また、これらの構成要素の一部が、情報端末に備えられており、情報端末と位置測位装置とで位置測位システムを構成することとしてもよい。
上述した実施形態では、センサ情報は、GPS、WiFi及びBLEによるものであったが、ノードが特定可能なものであれば、どのようなものが用いられてもよい。例えば、近距離無線通信として、NFC(Near Field Communication)が用いられてもよい。また、ジャイロセンサ、加速度センサ及び地磁気センサ等によって得られる情報をセンサ情報として用いることとしてもよい。
上述した実施形態では、ノードの領域は円形であり、GPS信号受信部11によって取得されたセンサ情報である緯度及び経度を示す情報からノードを特定するために用いられる、ノードテーブル14aに格納された変換情報は、中心緯度経度及び半径(m)であった。しかしながら、ノードの領域の形状、及びノードテーブル14aに格納された変換情報は、必ずしも上記のものに限られない。例えば、ノードの形状を矩形としてもよい。その場合、ノードテーブル14aに格納される変換情報は、例えば、矩形の四隅の位置を示す緯度及び経度を示す情報としてもよい。
また、上述した実施形態における、センサ取得タイミングの決定に用いるユーザの移動速度及び各ノードにおけるユーザの滞在時間は、ユーザの過去の実績(履歴)を取得し、情報端末10において当該実績に基づいて算出されたものを用いてもよい。例えば、歩く速度はユーザ毎に異なるため、ユーザの過去の平均歩行速度を用いることによって、早足のユーザの場合は次回のセンサ情報の取得までの時間を短くして、適切にノードを特定することが可能となる。
また、グラフデータベース14は、ユーザの属性に応じて、各ノードにおけるユーザの滞在時間を示す情報を記憶し、制御部17は、情報端末10のユーザの属性に応じたユーザの滞在時間にも基づいて、センサ情報の取得の時間間隔を決定することとしてもよい。例えば、ユーザの性別や年齢に応じてユーザの滞在時間を記憶してもよい。
ノードの平均滞在時間は、性別というユーザ属性に大きく依存することが予測される。例えば、ショッピングモールでのレディース向けショップ等では、女性は長期滞在しやすいが男性はあまり立ち寄らない。ユーザがそのようなノードに滞在したと判定された場合、次回のセンサ取得タイミングは、女性の場合は長めに、男性の場合は短めに設定するといったように、女性と男性とでセンサ取得タイミングを変更可能であることとしてもよい。
情報端末10が、ユーザの操作等でユーザの属性を示す情報を入力することで、ユーザの属性に応じたユーザの滞在時間を用いることができる。この構成によれば、ユーザの属性に応じて、当該時間間隔を更に適切なものとすることができる。
また、位置測位システムは、グラフデータベース14に記憶される情報を自動的に生成するノードリンク生成部を更に備えていてもよい。ノードリンク生成部は、複数のセンサ情報と、当該センサ情報が取得された位置の緯度及び経度を示す情報とを取得して、取得した情報に基づいてグラフデータベース14に記憶される情報を生成するノードリンク生成手段である。ノードリンク生成部は、例えば、上述した位置測位サーバに備えられていてもよいし、情報端末10に備えられていてもよい。具体的には、ノードリンク生成部は、以下のように情報の生成を行う。
情報端末10は、高頻度でセンサ11,12,13によってセンサ情報を取得する。また、センサ情報が取得されるタイミングで、情報端末10の緯度及び経度を計測する。緯度及び経度の計測は、例えば、屋外であればGPSによるトラッキング測位、屋内であれば近距離無線通信デバイスから取得されたRSSIを用いた三点測量を行う。また、高低差を取得するため、GPSあるいは情報端末10に設けられる気圧センサによって測定された気圧から、当該位置の高度を計測する。
ノードリンク生成部は、上記のように取得された情報を、時系列の履歴として情報端末10から取得する。この取得は、複数の情報端末10(複数のユーザ)から行われることとしてもよい。ノードリンク生成部は、当該情報の履歴から、ユーザの動線を特定すると共に、ユーザの滞留点(長時間立ち止まったところ)を取得する。ノードリンク生成部は、複数のユーザの滞留点を集めて、クラスタリングを行うことによって、その領域上での滞留エリア(ユーザが立ち止りやすい傾向にあるところ)を特定することが可能である。クラスタリングには、X−means法等の既知の教師なし学習のアルゴリズムが適用可能である。なお、ノードリンク生成部は、滞留点ではなく、個々の緯度及び経度に対してクラスタリングを行って、滞留エリア(1つのクラスタに相当)を特定することとしてもよい。
ノードリンク生成部は、特定された滞留エリアをノードとして、グラフデータベース14に記憶される情報を生成する。その場合、ノードテーブル14aに格納される変換情報は、以下のように生成される。ノードIDは、ノード間で重複しないように設定される。中心緯度経度は、滞留エリアに含まれる緯度及び経度の平均によって得られる。半径(m)は、中心緯度経度に基づき、滞留エリアに含まれる緯度及び経度を含むように決定される。平均滞在時間としては、時系列の履歴から滞留時間が判定できる場合にはその値を用いる。あるいは、平均滞在時間としては、予め設定された値が用いられてもよい。BSSIDは、滞留エリアに含まれる緯度及び経度と同時に取得されたセンサ情報で示されるBSSIDのうち、最も数が多いBSSIDとされる。滞留エリアに含まれる緯度及び経度と同時に取得されたセンサ情報で示されるBSSIDがない場合(WiFi/BLE信号情報リスト)がない場合には、BSSIDは設定されてない。th1、th2及びth3は、予め設定された値が用いられる。
リンクテーブル14bに格納されるリンク情報は、時系列の履歴に基づいて生成される。例えば、滞留エリア間の移動が一定以上の数がなされている滞留エリア間(ノード間)にリンクを設定する。中心間の距離(m)及び高低差(m)は、中心緯度経度及び上述した高度によって得られる。
なお、ノードリンク生成部によるグラフデータベース14に記憶される情報の生成は、以下のように行われてもよい。例えば、事前準備として、ノードが設定されていない領域に屋内を含む場合、当該屋内に、例えば数メートルの間隔で多数のWiFiアクセスポイントやBLEデバイス等の近距離無線通信デバイスを設置する。そして上記のように一次的にグラフデータベース14の生成を行う。
そして、ノードが生成された後、近距離無線通信デバイスを個々のノードに対応するように再配置する。事前準備の段階では、屋内には数メートル間隔で多数の近距離無線通信デバイスを設置したが、今回は1つの滞留エリア(ノード)に1つの近距離無線通信デバイスを設置する。そして、再度、ノードリンク生成部によるグラフデータベース14に記憶される情報の生成を行って、再配置後の情報を得る。
上記の構成によれば、自動的にグラフデータベース14に記憶される情報を生成することができる。