以下、図面を用いて本発明の実施の形態を説明する。
図1は、本発明の実施形態の測位システムの構成を示すブロック図である。
本実施形態の測位システムは、端末装置110、基地局装置120及びサーバ装置130によって構成される。基地局装置120はネットワーク160を介して端末装置110と通信し、サーバ装置130はネットワーク170を介して基地局装置120と通信することができる。
端末装置110は、測位機能及び通信機能を有する持ち運び可能な端末である。例えば、端末装置110は、ユーザ(すなわち測位対象)が携行する計算機又は携帯電話機等であってもよい。端末装置110は、測位及び通信を制御する処理装置111、及び、処理装置111による制御に従って通信を実行する通信装置112を備える。
本実施形態では、ユーザの位置として、ユーザが携行する端末装置110の位置が計測される。そのために使用される測位方法は、端末装置110が周囲に設置された測位装置(後述)から受信した信号を用いて自身の位置を計測する方法であってもよいし、測位装置が端末装置110から受信した信号を用いて端末装置110の位置を計測する方法であってもよい。なお、後者の場合、測位装置が端末装置110の位置を計測するというよりは、サーバ装置で端末装置110の位置を計測する場合が多い。例えば、測位装置が、端末装置110から受信した信号の強度や到達時間などをサーバ装置に送信し、サーバ装置が信号の強度や到達時間に基づき、端末装置110の位置を計測する。
例えば、本実施形態の端末装置110は、受信したGPS(Global Positioning System)信号を用いて自身の現在位置の座標を取得してもよい。ただし、通常、屋内でGPS衛星からの信号を受信することは困難であるため、屋内にGPS信号と互換性のある信号を送信する測位装置を予め設置しておく必要がある。
あるいは、例えば、端末装置110と測位装置との間の通信に基づいて端末装置110の測位が行われてもよい。例えば、測位装置が無線LAN(Local Area Network)の基地局であり、端末装置110が無線LANに接続する機能を備える装置である場合、端末装置110がどの基地局のエリア内にあるかを特定することによって、その端末装置110の位置を計測することができる。この場合、図1の基地局装置120が測位装置に相当する。
上記のような測位方法は一例に過ぎず、本実施形態では種々の測位方法を使用することができる。例えば、無線LANの代わりにZigBee(登録商標、以下同じ)又はUWB(Ultra Wide Band)等が使用されてもよい。あるいは、複数の測位方法が組み合わせて使用されてもよい。いずれの測位方法が使用される場合にも、端末装置110の位置を計測するために、その端末装置110への信号の送信又は端末装置110からの信号の受信の少なくとも一方を行う複数の測位装置を設置する必要がある。
端末装置110は、測位によって自身の位置情報を取得した場合、ネットワーク160を介してその位置情報を基地局装置120に送信する。基地局装置120は、受信した位置情報を、ネットワーク170を介してサーバ装置130に送信する。基地局装置120が測位を行って位置情報を取得した場合、基地局装置120はその位置情報をサーバ装置130に送信する。
端末装置110と基地局装置120との間の通信は、どのような手段によって実現されてもよい。例えば、端末装置110が無線LANによる通信機能を備える携帯電話機又は計算機である場合、端末装置110は、無線LANのプロトコルに従って基地局装置120に位置情報を送信することができる。
基地局装置120は、上記のような通信を実行する通信装置122、及び、その通信装置122を制御する処理装置121を備える。これらは、従来の無線LAN基地局等が備えるものと同様のものであってよい。
なお、図1には端末装置110及び基地局装置120を一つずつ図示したが、通常は、屋内空間には複数の端末装置110が存在し、複数の基地局装置120が設置される。
ネットワーク160は、典型的には無線LANのような無線ネットワークであるが、ZigBee又はUWBによる通信が行われてもよい。一方、ネットワーク170は、ネットワーク160と同様のものであってもよいが、典型的には、有線LANのような有線ネットワークである。
サーバ装置130は、基地局装置120から取得した端末装置110の位置情報を処理する装置であり、一般的な計算機と同様のハードウェアによって実現することができる。具体的には、サーバ装置130は、相互に接続された処理装置131、通信装置132、主記憶装置133、外部記憶装置134及び入出力装置135を備える。
処理装置131は、通信装置132、主記憶装置133及び外部記憶装置134を制御し、主記憶装置133に格納されたプログラムを実行することによって種々の処理を実行するプロセッサである。
通信装置132は、ネットワーク170を介して基地局装置120と通信するインターフェースである。
主記憶装置133は、例えばDRAM(Dynamic Random Access Memory)のような半導体記憶装置であり、処理装置131によって実行されるプログラムを格納する。図1の例では、測位部141、測位不具合検知部142、測位データ補正部143及び環境変化推定部144が格納される。これらはいずれも処理装置131によって実行されるプログラムである。以下の説明において上記の各部が実行する処理は、実際には、これらのプログラムに従う処理装置131によって実行される。各部が実行する処理の詳細については後述する。
外部記憶装置134は、例えばハードディスクドライブのような不揮発性の記憶装置であり、上記の各部によって参照及び更新されるデータを格納する。図1の例では、地図構造化データ151、ネットワークデータ152、測位データ153、位置未検出データ154及び測位不具合データ155が格納される。
地図構造化データ151は、屋内空間を構成する部屋等の領域の位置及び形状を示すデータであり、例えば、建物内のどのフロアにどのような形状の部屋があるかを示すデータを含む。
ネットワークデータ152は、ノード及びリンクから構成される、屋内空間の接続関係を示すデータで、人の移動軌跡を示すデータになる。本実施形態では、屋内空間の領域及び領域間をユーザが通行可能となるように接続する移動経路が、複数のノード及びそれらを接続するリンクからなるネットワークによって表現される。ネットワークデータ152は、そのようなノード及びリンクに関するデータを含み、建物形状、測位装置の設置場所及び測位方法に基づいて決定される。ネットワークデータ152の具体例については後述する。
測位データ153は、サーバ装置130が基地局装置120から取得した端末装置110の位置情報を含む。
位置未検出データ154は、測位によって位置を検出できなかった場所に関する情報を含む。
測位不具合データ155は、検知された測位の不具合に関する情報を含む。測位の不具合とは、例えば屋内空間のレイアウト変更又はユーザの混雑等によって、端末装置と測位装置の間で無線通信を行えず、測位装置による測位に生じた支障を意味する。
本実施形態において、測位データ153、位置未検出データ154及び測位不具合データ155は、それぞれ測位データテーブル、位置未検出データテーブル及び測位不具合データテーブルとして実装される。それらの具体例については後述する(図10A〜図10C等参照)。
なお、図1に示したプログラムは、外部記憶装置134に格納され、必要に応じてその一部又は全部が主記憶装置133にコピーされてもよい。同様に、外部記憶装置134に格納されたデータの一部又は全部が必要に応じて主記憶装置133にコピーされてもよい。
入出力装置135は、管理者によるサーバ装置130への情報の入力及びサーバ装置130からの管理者への情報の出力に使用される。入出力装置135は、情報の入出力に使用できる装置である限りどのようなものであってもよいが、典型的には、キーボード及びマウスのような入力装置及び画像表示装置のような出力装置を含む。
なお、本実施形態において、端末装置110を携行する人物をユーザ、サーバ装置130を使用する人物を管理者と記載する。以下、端末装置110がユーザ(すなわち人間)に携行される場合を例として説明するが、端末装置110が人間以外のもの(例えば物品の運搬装置等)に取り付けられる場合にも本実施形態は成立する。
図2は、本発明の実施形態における屋内空間の構造の説明図である。
本実施形態では、図2に示すように、部屋201〜206の6部屋からなる建物の屋内空間を例として説明する。
部屋201〜206には、それぞれ、測位装置211〜216が設置される。既に説明したように、測位装置211〜216は、GPS信号と等価な信号を送信する装置又は無線LANの基地局(すなわち基地局装置120)等であってよい。各測位装置211〜216は、各部屋の全域で測位可能となるように設置される。例えば、測位装置211〜216の各々が基地局装置120である場合、各基地局装置120が各部屋のどの位置の端末装置110とも測位信号を送受信できるよう、各基地局装置120の通信装置122の一部であるアンテナが各部屋の略中心の天井部分に取り付けられてもよい。ただし、後述するように、測位装置の運用が開始された後、環境の変化等によって、部屋の中に正常な測位ができない部分が生じる場合がある。
部屋の間を仕切る壁には、人が通行可能なドア221〜225が設けられる。具体的には、部屋201と部屋202との間にドア221が、部屋202と部屋203との間にドア222が、部屋203と部屋204との間にドア223が、部屋202と部屋205との間にドア224A及びドア224Bが、部屋203と部屋206との間にドア225が、それぞれ設けられる。
なお、本明細書では、建物内の、それぞれ範囲が定められた領域を「部屋」と記載しているが、実際には各部屋201〜206は一般的な部屋のほか、部屋の一部の区画、通路、又は階段室等、任意の領域であってよい。また、部屋を仕切る壁には、ドア以外の通行可能な開口部が設けられてもよいし、壁自体が設けられなくてもよい。
次に、図3A〜図3Cを参照して、ネットワークデータ152の一例を説明する。
図3Aは、本発明の実施形態における屋内空間ネットワークの説明図である。
本実施形態では、屋内空間がノード及びリンクからなるネットワークとして表現される。具体的には、各部屋が一つのノードに対応し、二つの部屋の間の通行可能な経路が一つのリンクに対応する。
図3Aは、図2に示す屋内空間を表現するネットワークの例を示す。すなわち、図3Aに示すネットワークは、それぞれ部屋201〜206に対応するノード301〜306と、それらを接続するリンク311〜315と、からなる。部屋201と部屋202との間のドア221が通行可能であるため、ノード301とノード302はリンク311によって接続される。同様に、ノード302とノード303はリンク312によって接続される。ノード303とノード304はリンク313によって接続される。ノード303とノード306はリンク315によって接続される。
なお、図3Aでは、ノード301〜306の識別子としてそれぞれ「N1」〜「N6」が、リンク311〜315の識別子としてそれぞれ「L1」〜「L5」が表示されている。これらは、後述するノードテーブル330及びリンクテーブル350においてリンク及びノードを識別するために使用される。
部屋202と部屋205との間のドア224A及びドア224Bがいずれも通行可能であるため、ノード302とノード305はリンク314によって接続される。なお、本実施形態では、二つの部屋の間に通行可能なドア(又はその他の開口部)が複数存在する場合であっても、それらは一つのリンクによって表現される。
また、一般には通行可能な開口部のない壁によって二つの部屋の間が仕切られていてもよいが、その場合、その壁をユーザが通過することができないため、それらの部屋に対応する二つのノードは一つのリンクによって接続されない。
図3Aに示す破線は、各測位装置による測位精度、言い換えると、各測位装置が設置された時点における、各測位装置によって測位可能な範囲を示す。図3Aでは、表示の便宜上、各部屋とほぼ同じだが少し小さい範囲が測位精度として表示されているが、実際には各部屋の全域で測位可能になるように各測位装置が設置されるため、各測位装置による測位精度は、それが設置された各部屋の範囲と同一になる。
例えば、測位装置が基地局装置120である場合、端末装置110の位置を測定することは、端末装置110がどの基地局装置120のエリア内にあるかを判定することに相当する。一般に、部屋の中に設置された基地局装置120から送信された無線信号が部屋の外まで届く場合がある。端末装置110は、複数の基地局装置120と通信可能である場合、受信電波強度が強い基地局装置120のエリア内にあると判定される。
例えば、端末装置110が測位装置212に相当する基地局装置120のエリア内にあると判定された場合、端末装置110の位置情報として、部屋202に対応するノード302の識別子「N2」が取得されてもよいし、そのノードの座標値(図3B参照)が取得されてもよい。ただし、マルチパス、部屋のレイアウト変更又はユーザの混雑等によって、端末装置110が実際には部屋202内にあるにもかかわらず、別の部屋の測位装置(例えば測位装置215)からの信号を、測位装置212からの信号より強く受信する場合がある。このような場合に実行する処理については後述する。
上記のように、本実施形態では、一つの部屋に一つの測位装置が設置されている場合、端末装置110がどの部屋にあるかを特定することはできるが、部屋の中のどの位置にあるかを特定することまではできない。より分解能の高い測位を行う必要がある場合には、一つの部屋に複数の測位装置を設置することによって、一つの部屋を複数のエリアに分割することができる。この場合、各エリアが測位精度に相当するため、より分解能の高い測位を行うことが可能になる。その場合、各エリアが一つのノードに対応付けられてもよい。
あるいは、例えば測位の分解能を高める必要がなくても、部屋の全域で確実に正常な測位を可能にするために、一つの部屋に複数の測位装置を設置することもできる。この場合、設置された複数の測位装置が一つの部屋に対応する一つのノードに対応付けられる。例えば、部屋202に複数の測位装置212が設置され、測位によって端末装置110がそれらの測位装置212のいずれのエリア内にあると判定された場合にも、位置情報として「N2」又はそれに対応する座標値が取得される。
なお、本実施形態では、測位が所定のタイミングにおいて(例えば所定の時間間隔ごとに)実行される。ただし、後述する測位データの連続性の検証のため、移動する端末装置110が通過する各部屋で少なくとも1回は測位が行われるように、端末装置110の移動速度及び部屋の大きさに応じて、十分に短い時間を測位間隔として設定する必要がある。以下の説明では、測位間隔を単位時間とも記載する。例えば、ある測位時刻に対して、その一つ前の時刻とは、当該測位時刻の1単位時間前の時刻を意味する。
図3Bは、本発明の実施形態におけるネットワークデータ152に含まれるノードテーブル330の説明図である。
ノードテーブル330は、各ノードを識別するノードID331及び各ノードの位置を示す座標332からなる。図3Bの例では、ノードID331として、図3Aに示したノード301〜306を識別する「N1」〜「N6」が保持され、座標332として、それらのノードの位置を示す座標値(x1,y1)〜(x6,y6)が保持される。なお、各ノードの座標値は、各ノードに対応する部屋(言い換えると、各測位装置による測位精度の範囲)を代表する座標値である。例えば、各ノードの座標値は、各部屋に設置された測位装置211〜216の座標値であってもよいし、それ以外の値(例えば各部屋の中心の座標値)であってもよい。
図3Cは、本発明の実施形態におけるネットワークデータ152に含まれるリンクテーブル350の説明図である。
リンクテーブル350は、各リンクを識別するリンクID351、各リンクの始点ノードを識別する始点352及び各リンクの終点ノードを識別する終点353からなる。
図3Cの例では、リンクID351として、図3Aに示したリンク311〜315を識別する「L1」〜「L5」が保持され、始点352及び終点353として、それらのリンクの始点ノード及び終点ノードの識別子が保持される。例えば、「L1」によって識別されるリンク311の始点352及び終点353として、それぞれ、ノード301及び302を識別する「N1」及び「N2」が保持される。
なお、本実施形態では、ユーザが各リンクを両方向(すなわち始点ノードから終点ノードの方向及び終点ノードから始点ノードの方向の両方)に移動できることが前提となる。このように、本実施形態では両方向リンクを用いて空間ネットワークを表現するが、片方向ネットワークを用いて表現した場合にも本発明を適用することができる。その場合、例えばリンク「L1」に対応する二つのレコードがリンクテーブル350に登録され、その一方のレコードの始点352及び終点353にはそれぞれ「N1」及び「N2」が、もう一方のレコードの始点352及び終点353にはそれぞれ「N2」及び「N1」が登録される。1方向にしか通過できない経路がある場合には、通過できない方向に対応するレコードは登録されない。
図4は、本発明の実施形態のサーバ装置130が実行する測位不具合検知処理を示すフローチャートである。
サーバ装置130の測位不具合検知部142は、最初に、測位不具合条件を設定する(ステップ401)。この処理については、図5を参照して後述する。
次に、測位不具合検知部142は、基地局装置120から、端末装置110の位置情報を含む測位データを受信する(ステップ402)。受信した測位データは、測位データ153として格納される。測位部141が測位データを受信してそれを測位データ153として格納し、測位不具合検知部142が測位データ153を参照してもよい。測位データ153の具体例については、図10A〜図10C等を参照して後述する。
なお、測位データ153は、後述するように、測位が実行された時刻を示す情報と、その時刻における端末装置110の位置を示す情報とを含む。以下の説明において、取得された測位データ153のうち最も新しい時刻における測位データを現在の測位データと記載し、現在の測位データより古い測位データ(すなわち過去の測位データ)のうち最も新しい時刻における測位データを過去最も新しい測位データと記載する。
次に、測位不具合検知部142は、ネットワークデータ152及び測位データ153に基づいて、現在の測位データと過去の測位データとの間の連続性を検証する(ステップ403)。測位データの連続性は、測位データと予め保持されたネットワークデータとを比較することによって検証される。測位データが不連続であることは、測位データがネットワークデータと矛盾することを意味する。ステップ403の処理の詳細については、図6A及び図6Bを参照して後述する。
次に、測位不具合検知部142は、ステップ403の検証結果に基づいて、現在の測位データと過去の測位データとが連続であるか否かを判定する(ステップ404)。不連続であると判定された場合、処理はステップ405に進み、連続であると判定された場合、処理はステップ409に進む。
ステップ405において、測位不具合検知部142は、ネットワークデータ152及び測位データ153に基づいて、本来検出されるべき位置を求め、これを位置未検出データ154として格納する。この処理については、図7を参照して後述する。
次に、測位不具合検知部142は、測位不具合条件が満たされるか否かを検証する(ステップ406)。この処理については、図8を参照して後述する。
次に、測位不具合検知部142は、ステップ406の検証結果に基づいて、測位不具合条件が満たされるか否かを判定する(ステップ407)。測位不具合条件が満たされると判定された場合、処理はステップ408に進み、満たされないと判定された場合、処理はステップ409に進む。
ステップ408において、測位不具合検知部142は、ステップ405において求められた本来検出されるべき位置が測位不具合位置であることを示す情報を測位不具合データ155として格納する。この処理については、図9を参照して後述する。
次に、測位不具合検知部142は、測位不具合検知処理を終了するか否かを判定する(ステップ409)。例えば、管理者が処理の終了を指示した場合又は所定の終了条件が満たされた場合に測位不具合検知処理を終了すると判定されてもよい。測位不具合検知処理を終了すると判定された場合、測位不具合検知部142は測位不具合検知処理を終了する。一方、測位不具合検知処理を終了しないと判定された場合、処理はステップ402に戻る。
図5は、本発明の実施形態のサーバ装置130が実行する測位不具合条件設定処理を示すフローチャートである。
図5に示す処理は、図4のステップ401において実行される。
測位不具合検知部142は、例えば、過去t単位時間以内に、測位データテーブル及び位置未検出データテーブルにおいて、測位不具合検知対象の位置に対応するレコードの数の合計値がx件以上あり、かつ、位置未検出割合がp以上である場合に、当該位置を測位不具合位置とみなすように測位不具合条件を設定することができる(ステップ501)。この場合、測位不具合検知部142は、上記の時間t、件数x及び割合pを任意に(例えば管理者から入力された値を)設定することができる。
以上で測位不具合条件設定処理が終了する。
図6A及び図6Bは、本発明の実施形態のサーバ装置130が実行する測位データ連続性検証処理を示すフローチャートである。
図6A及び図6Bに示す処理は、図4のステップ403において実行される。
ここで、図6A及び図6Bにおける処理の概要を説明する。
既に説明したように、本実施形態では、端末装置110が通過するいずれの部屋においても、少なくとも1回は測位が実行される。このため、正常な測位に成功し続けている限り、隣接する二つの時刻における測位データは、必ず同一の位置又は隣接する位置を示し、隣接しない位置を示す可能性はない。ここで、隣接する二つの時刻とは、ある時刻と、その1単位時間後の時刻とを意味する。また、本実施形態において、一つのリンクを介して接続された二つのノード(すなわちそれぞれが一つのリンクの始点ノード及び終点ノードである二つのノード)を隣接ノードと記載し、隣接する二つのノードに対応する二つの部屋を隣接する部屋と記載し、隣接する二つのノードに対応する二つの位置を隣接する位置と記載する。したがって、二つの位置が隣接するか否かは、ネットワークデータに基づいて判定される。
隣接する二つの時刻における測位データが示す位置が同一でなく、隣接もしないことは、測位データがネットワークデータと矛盾することを意味する。この場合、少なくとも一方の時刻において正常な測位に失敗していると判定される。このように測位データがネットワークデータと矛盾することを本実施形態では測位データが不連続であると記載する。
具体的には、隣接する二つの時刻における測位データが示す位置が同一でなく、隣接もしない場合において、それらの二つの時刻のうち前の時刻において測位データが連続であると判定されている場合には、後の時刻の測位データが不連続であると判定される(図6A参照)。
二つの隣接する時刻における測位データのうち前の時刻における測位データが不連続であると判定され、かつ、それらの二つの測位データが同一の位置を示す場合、端末装置110が正常な測位に失敗した部屋にとどまっているとの推定に基づいて、後の時刻における測位データも不連続であると判定される。一方、それらの二つの測位データが異なる位置を示し、かつ、後の時刻の測位データが示す位置が、最後に連続と判定された測位データ(すなわち過去最も新しい連続な測位データ)が示す位置と一つ以上のリンクを介して接続されている場合、端末装置110が正常な測位に失敗した部屋から別の部屋に移ったとの推定に基づいて、後の時刻における測位データが連続であると判定される(図6B参照)。
次に、図6A及び図6Bにおける処理の詳細を説明する。
最初に、測位不具合検知部142は、リンクテーブル350を参照して、始点ノードが現在の測位データが示す位置(すなわち現在の測位データに含まれる位置情報によって特定される端末装置110の位置。以下、現在の位置と記載)に対応するノードであるレコードの終点ノードの集合を隣接ノードとして取得する(図6Aのステップ601)。さらに、測位不具合検知部142は、終点ノードが現在の位置に対応するノードであるレコードの始点ノードの集合を隣接ノードとして取得する(ステップ602)。
結局、ステップ601及び602のいずれか一方の条件に該当する全てのノードが隣接ノードとして取得される。
次に、測位不具合検知部142は、過去最も新しい測位データが連続であるか否かを判定する(ステップ603)。過去に実行された測位データ連続性検証処理の結果を参照することによって、ステップ603の判定をすることができる。過去最も新しい測位データが不連続であると判定された場合の処理については、図6Bを参照して後述する。
過去最も新しい測位データが連続であると判定された場合、測位不具合検知部142は、ステップ601及び602において取得された隣接ノードの集合が、過去最も新しい測位データの位置に対応するノードを含むか否かを判定する(ステップ604)。
隣接ノードの集合が過去最も新しい測位データの位置に対応するノードを含む場合、現在の位置と過去最も新しい測位データが示す位置とが隣接する。この場合、測位不具合検知部142は、現在の測位データが過去の測位データに連続すると判定し、その判定の結果を返す(ステップ605)。
一方、隣接ノードの集合が過去最も新しい測位データの位置に対応するノードを含まない場合、現在の位置と過去最も新しい測位データが示す位置とが隣接しない。この場合、測位不具合検知部142は、現在の位置と、過去最も新しい測位データが示す位置とが同一であるか否かを判定する(ステップ606)。
現在の位置と、過去最も新しい測位データが示す位置とが同一である場合、測位不具合検知部142は、現在の測位データが過去最も新しい測位データに連続していると判定し、その判定の結果を返す(ステップ605)。
現在の位置と、過去最も新しい測位データが示す位置とが同一でない場合、測位不具合検知部142は、現在の測位データが過去の測位データに連続しない(すなわち現在の測位データが不連続である)と判定し、その判定の結果を返す(ステップ607)。
ステップ603において、過去最も新しい測位データが不連続であると判定された場合、測位不具合検知部142は、現在の位置と、過去最も新しい不連続な測位データが示す位置とが同一であるか否かを判定する(ステップ611)。
現在の位置と、過去最も新しい不連続な測位データが示す位置とが同一である場合、測位不具合検知部142は、現在の測位データが過去の測位データに連続しないと判定し、その判定の結果を返す(ステップ607)。
ステップ611において、現在の位置と、過去最も新しい不連続な測位データが示す位置とが同一でないと判定された場合、測位不具合検知部142は、現在の測位データに対応するノードと、過去最も新しい連続な測位データが示すノードとが1以上のリンクを介して接続されているか否かを判定する(ステップ613)。
現在の測位データに対応するノードと、過去最も新しい連続な測位データが示すノードとが1以上のリンクを介して接続されている場合、測位不具合検知部142は、現在の測位データが過去の測位データに連続すると判定し、その判定の結果を返す(ステップ605)。
なお、ステップ613において、現在の測位データに対応するノードと、過去最も新しい連続な測位データが示すノードとが同一である場合にも、現在の測位データが過去の測位データに連続すると判定される。これは、例えば端末装置110が部屋201から部屋202に移動し、部屋202において測位の不具合が発生し、その後、端末装置110が部屋201に戻り、部屋201では正常な測位が行われた場合に相当する。
一方、現在の測位データに対応するノードと、過去最も新しい連続な測位データが示すノードとが1以上のリンクを介して接続されていない場合、測位不具合検知部142は、現在の測位データが過去の測位データに連続しないと判定し、その判定の結果を返す(ステップ607)。
ステップ605又は607が終了すると、測位データ連続性検証処理が終了する。
上記の処理の具体例については、図10A〜図10C等を参照して後述する。
なお、実際には、測位部141が複数の時刻における複数の測位データをまとめて取得する場合がある。そのように測位データをまとめて取得した時点では、現在の(すなわち最新の)測位データだけでなく、過去のいくつかの測位データについても連続性の検証が行われていない。この場合には、まだ連続性が検証されていない測位データのうち最も古い時刻における測位データを上記の「現在の測位データ」として扱い、上記の処理を繰り返し実行することによって、全ての測位データの連続性を検証することができる。
図7は、本発明の実施形態のサーバ装置130が実行する本来検出されるべき位置の算出処理を示すフローチャートである。
図7に示す処理は、図4のステップ405において実行される。
最初に、測位不具合検知部142は、リンクテーブル350を参照して、始点ノードが現在の位置に対応するノードであるレコードの終点ノードの集合を隣接ノードとして取得する(ステップ701)。さらに、測位不具合検知部142は、終点ノードが現在の位置に対応するノードであるレコードの始点ノードの集合を隣接ノードとして取得する(ステップ702)。これらの処理は、図6Aのステップ601及び602と同じである。
次に、測位不具合検知部142は、ステップ701及び702によって取得された隣接ノードの集合に含まれる一つのノードを、本来検出されるべきノードとして選択する(ステップ703)。
次に、測位不具合検知部142は、ステップ703において選択された本来検出されるべきノードを示す情報を位置未検出データテーブルに記録する(ステップ704)。
以上で本来検出されるべき位置の算出処理が終了する。
図8は、本発明の実施形態のサーバ装置130が実行する測位不具合条件の検証処理を示すフローチャートである。
図8に示す処理は、図4のステップ406において実行される。
最初に、測位不具合検知部142は、測位データテーブルから、過去t単位時間以内のレコードのうち、検証対象の位置に対応するレコードの集合R1を取得する(ステップ801)。
次に、測位不具合検知部142は、位置未検出データテーブルから、過去t単位時間以内のレコードのうち、検証対象の位置に対応するレコードの集合R2を取得する(ステップ802)。
次に、測位不具合検知部142は、集合R1に含まれるレコードの数と集合R2に含まれるレコードの数の合計がx以上であり、かつ、その合計の数に対する集合R2に含まれるレコードの数の割合(すなわち位置未検出割合)がp以上であるか否かを判定する(ステップ803)。
ステップ803において、計算された合計がx以上であり、かつ、計算された割合がp以上であると判定された場合、測位不具合検知部142は、現在の測位データが測位不具合条件を満たすことを返す(ステップ804)。
ステップ803において、計算された合計がx以上でないか、又は、計算された割合がp以上でないと判定された場合、測位不具合検知部142は、現在の測位データが測位不具合条件を満たさないことを返す(ステップ805)。
以上で測位不具合条件の検証処理が終了する。
図9は、本発明の実施形態のサーバ装置130が実行する測位不具合位置の記録処理を示すフローチャートである。
図9に示す処理は、図4のステップ408において実行される。
測位不具合検知部142は、測位不具合条件を満たすと判定された測位データが示す位置、時刻、及び算出された位置未検出割合を含むレコードを測位不具合データテーブルに登録する(ステップ901)。以上で測位不具合位置の記録処理が終了する。
続いて、図4〜図9に示した処理の具体例を、図10A〜図10Cを参照して説明する。図10A〜図10Cは、いずれも、図3Aに示す屋内空間において、端末装置110が部屋201から部屋202、部屋203を経由して部屋204に移動した場合の測位データ等を示す。
図10Aは、本発明の実施形態における測位データ及びそれに基づく測位不具合検知処理の第1の具体例を示す説明図である。
詳細には、図10Aは、識別子「A」によって識別される端末装置110が、時刻「100」に部屋201に、時刻「101」から「103」に部屋202に、時刻「104」及び「105」にそれぞれ部屋203及び204にあり、かつ、いずれの時刻においても正常に測位が行われた場合に測位データ153として格納される測位データテーブル1000Aを示す。
測位データテーブル1000Aの各レコードは、端末装置110の識別子を格納する端末ID1001、測位が行われた時刻を格納する時刻1002及び測位データが示す位置を格納する位置1003を含む。図10Aに示す位置1003の値「N1」〜「N4」は、それぞれ、部屋201〜204に対応するノードの識別子であり、これによって端末装置110の位置が特定される(図3A〜図3C参照)。以下の説明では、ノードの識別子を位置情報として使用する。
ここで、図10Aを参照して、図4〜図9に示した処理の具体例を説明する。
時刻「101」における位置「N2」が現在の位置として取得された場合、測位不具合検知部142は、リンクテーブル350を参照して、ノード「N2」が始点352として登録されているレコードの終点353のノード「N3」及び「N5」を取得し(ステップ601)、さらに、ノード「N2」が終点353として登録されているレコードの始点352のノード「N1」を取得する(ステップ602)。すなわち、隣接ノードの集合はノード「N1」、「N3」及び「N5」の三つを要素として含む。
この時点より前に実行された測位データ連続性検証処理において、過去最も新しい測位データ(すなわち時刻「100」における位置「N1」を示す測位データ)が連続であると判定されていた場合(ステップ603)、上記のように取得された隣接ノードの集合が、過去最も新しい測位データが示す位置に対応するノード「N1」を含むため(ステップ604)、時刻「101」における測位データが連続であると判定される(ステップ605)。
次に、時刻「102」において位置「N2」が現在の位置として取得された場合、上記と同様に、「N1」、「N3」及び「N5」の三つを要素として含む隣接ノードの集合が取得される。この場合、過去最も新しい測位データ(すなわち時刻「101」における位置「N2」を示す測位データ)が連続であると判定されているが(ステップ603)、その位置「N2」は隣接ノードの集合に含まれていない(ステップ604)。この例では、現在の位置「N2」が、過去最も新しい測位データが示す位置「N2」と同一であるため(ステップ606)、時刻「102」における測位データが連続であると判定される(ステップ605)。
時刻「103」〜「105」における測位データについても同様の処理が実行され、その結果、全ての測位データが連続であると判定される(ステップ404)。このため、図10Aの例では図4のステップ405〜408は実行されない。したがって、この場合、位置未検出データ154及び測位不具合データ155には何も格納されない。
図10Bは、本発明の実施形態における測位データ及びそれに基づく測位不具合検知処理の第2の具体例を示す説明図である。
詳細には、図10Bは、識別子「A」によって識別される端末装置110が、図10Aの例と同じ経路を移動した場合の測位データ153、位置未検出データ154及び測位不具合データ155(すなわち、測位データテーブル1000B、位置未検出データテーブル1010B及び測位不具合データテーブル1020B)を示す。ただし、この例において、部屋202における測位は一度も成功していない。言い換えると、端末装置110が部屋202内にある間、そのことを一度も検出できていない。
測位データテーブル1000Bの各レコードの構成は、図10Aに示した測位データテーブル1000Aと同様である。ただし、測位データテーブル1000Bでは、時刻「101」〜「103」において、本来取得されるはずの位置「N2」の代わりに、部屋205に対応する位置「N5」が取得されている。これは、部屋202におけるレイアウト変更又は一時的な混雑などによって、端末装置110が測位装置212からの測位信号より強い測位信号を部屋205の測位装置215から受信したこと(又は、測位装置212が端末装置110から受信した測位信号の強度より測位装置215が受信した測位信号の強度が強かったこと)を意味する。
位置未検出データテーブル1010Bの各レコードは、端末装置110の識別子を格納する端末ID1011、測位が行われた時刻を格納する時刻1012及び測位データが示す位置を格納する位置1013を含む。これらは、測位データテーブル1000Bの各レコードの構成と同じである。ただし、位置未検出データテーブル1010Bには、測位データ連続性検証処理によって不連続であると判定された測位データに対応するレコードのみが格納される。さらに、各レコードの位置1013には、各時刻において本来検出されるべきであった位置(すなわち本来検出されるべき位置の算出処理(図7)によって取得された位置)が格納される。
測位不具合データテーブル1020Bの各レコードは、測位不具合が検知された位置を格納する位置1021、測位不具合が検知された時刻を格納する検知時刻1022及び未検出割合1023を含む。これらの値は図9のステップ901において格納される。
ここで、図10Bを参照して、図4〜図9に示した処理の具体例を説明する。
時刻「101」における位置「N5」が現在の位置として取得された場合、測位不具合検知部142は、リンクテーブル350を参照して、ノード「N5」が終点353として登録されているレコードの始点352のノード「N2」を取得する(ステップ602)。この例において、ノード「N5」が始点352として登録されているレコードは存在しない(ステップ601)。すなわち、隣接ノードの集合はノード「N2」のみを要素として含む。
図10Aの場合と同様、時刻「100」における位置「N1」を示す測位データが連続であると判定されたと仮定する(ステップ603)。上記のように取得された隣接ノードの集合は、過去最も新しい測位データが示す位置に対応するノード「N1」を含まない(ステップ604)。この例では、現在の位置「N5」が、過去最も新しい測位データが示す位置「N1」と同一でないため(ステップ606)、時刻「101」における測位データが不連続であると判定される(ステップ607)。
この場合、時刻「101」における測位データが不連続であると判定されるため(ステップ404)、隣接ノードの集合に含まれるノードのうち一つの位置が本来検出されるべき位置として選択される(ステップ703)。この例では、隣接ノードの集合にノード「N2」しか含まれないため、「N2」が選択される。隣接ノードの集合に複数のノードが含まれる場合、測位不具合検知部142がそれらのいずれかを選択する。
なお、本実施形態において、測位データが不連続であると判定された場合に、現在の位置に隣接するいずれかのノードの位置を本来検出されるべき位置として選択する理由は、次の通りである。
現在の測位データが不連続であると判定されたことは、検出された現在の位置が、端末装置110の真の位置と一致していないと推定されたことを意味する。図10Bは、その一例として、端末装置110が実際には部屋202内にあるのに、現在の位置として部屋205に対応するノード「N5」検出されたことを示す。このような不一致は、既に説明したように、例えば部屋202内にある端末装置110が測位装置212からの測位信号より測位装置215からの測位信号を強く受信した場合に発生する。このようなことは、例えば、部屋202内のレイアウト変更又は混雑によって測位装置212からの測位信号の受信が阻害された場合に発生する。
一般には、部屋202内の端末装置110が複数の測位装置からの測位信号を受信できる場合、部屋202に設置された測位装置212からの測位信号の受信強度が最も強く、部屋202の周囲の部屋に設置された測位装置からの測位信号の受信強度はそれより弱い。部屋202の周囲の部屋に設置された測位装置からの測位信号の中では、部屋202に隣接する部屋に設置された測位装置(すなわち測位装置211、213又は215)からの測位信号の受信強度が最も強いと推定される。したがって、上記のように測位装置212からの測位信号の受信が阻害された場合、隣接する部屋に設置された測位装置211、213又は215からの測位信号の受信強度が最も強くなる可能性が高い。
このことから、本実施形態では、現在の位置として「N5」が検出され、かつ、その位置情報を含む測位データが不連続であると判定された場合、端末装置110の真の位置は「N5」に隣接する「N2」であると推定される。
上記のように時刻「101」において本来検出されるべき位置として「N2」が選択された場合、位置未検出データテーブル1010Bの時刻「101」に対応する位置1013に「N2」が格納される(ステップ704)。
次に、測位データが測位不具合条件を満たすか否かが判定される(ステップ406)。ここでは、例として、ステップ501においてt=5、x=3及びp=0.5が入力された場合について説明する。この場合、後述するように、時刻「101」の時点では、測位不具合条件は満たされない(ステップ407)。なお、これらの数値は一例に過ぎず、実際には、測位間隔、測位装置の性能及びマルチパスの起こりやすさ等に応じて適切な数値を選択することができる。
次に、時刻「102」における位置「N5」が現在の位置として取得された場合、測位不具合検知部142は、時刻「101」の場合と同様に、ノード「N2」のみを要素として含む隣接ノードの集合を取得する(ステップ601及び602)。
上記のように、時刻「101」における位置「N5」を示す測位データが不連続であると判定され(ステップ603)、現在の位置「N5」は、過去最も新しい不連続な測位データが示す位置「N5」と同一である(ステップ611)。このため、時刻「102」における測位データが不連続であると判定される(ステップ607)。
この場合も、時刻「101」の場合と同様にステップ405及び407が実行される。すなわち、ステップ405では、時刻「102」において本来検出されるべき位置として「N2」が選択される。そして、時刻「102」でも、測位不具合条件は満たされない(ステップ407)。
次に、時刻「103」における位置「N5」が現在の位置として取得された場合、時刻「102」の場合と同様の処理によって、時刻「103」における測位データが不連続であると判定される。さらに、時刻「102」の場合と同様、ステップ405では、時刻「103」において本来検出されるべき位置として「N2」が選択される。ここまでの処理によって、位置未検出データテーブル1010Bには、図10Bに示すように、それぞれが時刻「101」から「103」に対応する三つのレコードが格納され、それらの位置1013の値はいずれも「N2」である。
次に、ステップ406が実行される。最初に、測位データテーブル1000Bに格納された過去5単位時間以内のレコードのうち、位置1003が検証対象の位置と一致するレコードの集合R1が取得される(ステップ801)。
ここで、検証対象の位置とは、測位不具合の検証対象の位置、言い換えると、測位不具合が発生していることが疑われる位置である。上記のように、不連続であると判定された測位データについて、本来検出されるべき位置として「N2」が選択された場合、位置「N2」(すなわちそれに対応する部屋202)において測位不具合が発生していることが疑われる。このため、ステップ801及び続くステップ802では、検証対象の位置として「N2」が指定される。
したがって、ステップ801では、過去5単位時間以内のレコードのうち、位置1003が「N2」であるレコードが取得される。しかし、図10Bの例では、この条件に該当するレコードは存在しない。したがって、集合R1は空集合となる。
次に、位置未検出データテーブル1010Bに格納された過去5単位時間以内のレコードのうち、位置1013が検証対象の位置「N2」と一致するレコードの集合R2が取得される(ステップ802)。図10Bの例では、集合R2には時刻「101」〜「103」に対応する三つのレコードが含まれる。
集合R1に含まれるレコードの数「0」と集合R2に含まれるレコードの数「3」の合計「3」がxの値「3」以上であり、かつ、合計「3」の値に対する集合R2に含まれるレコードの数「3」の割合(すなわち位置未検出割合)「1」がpの値「0.5」以上であるため(ステップ803)、この時点の測位データが測位不具合条件を満たすことが返される(ステップ804)。
この場合、測位不具合条件を満たすと判定された検証対象の位置「N2」、測位不具合条件を満たすと判定された時刻「103」及び位置未検出割合「1」が、それぞれ、測位不具合データテーブル1020Bの位置1021、検知時刻1022及び未検出割合1023として格納される(ステップ408及び901)。
なお、時刻「101」及び「102」において実行される測位不具合条件の検証処理では、ステップ803において、集合R1に含まれるレコードの数と集合R2に含まれるレコードの数の合計がxの値「3」未満であると判定されるため、測位不具合条件は満たされない。
上記のようにある程度以上の頻度で(上記の例では0.5以上)測位データの不連続が発生しない限り測位不具合が発生したと判定しない理由は、次の通りである。
すなわち、既に説明したように、通常は、部屋のレイアウト変更等によって測位信号の受信が阻害されない限り、ある部屋内にある端末装置110は、その部屋内の測位装置からの測位信号を最も強く受信することが期待されている。しかし、実際には、特に屋内空間においては、マルチパス等の影響によって、端末装置110が偶発的に周辺の部屋からの測位信号を最も強く受ける場合がある。このため、本実施形態では、不連続が発生する頻度が所定の値より低ければ、それが偶発的に発生したものであり、レイアウト変更等に起因するものではないと判断される。後述する測位データ補正条件(図12等参照)も、同様の考え方に基づく。
また、測位データの不連続が発生する頻度を計算するために、ある程度のサンプル数を確保する必要があるため、本実施形態ではレコード数の合計値についてx以上という制限が設けられる。
図10Cは、本発明の実施形態における測位データ及びそれに基づく測位不具合検知処理の第3の具体例を示す説明図である。
詳細には、図10Cは、識別子「A」によって識別される端末装置110が、図10Aの例と同じ経路を移動した場合の測位データ153、位置未検出データ154及び測位不具合データ155(すなわち、測位データテーブル1000C、位置未検出データテーブル1010C及び測位不具合データテーブル1020C)を示す。ただし、この例において、部屋202における測位は時折成功している。言い換えると、端末装置110が部屋202内にある間に実行された複数回の測位の一部が成功している。
測位データテーブル1000Cの各レコードの構成は、図10Aに示した測位データテーブル1000Aと同様である。ただし、測位データテーブル1000Cでは、時刻「101」及び「103」において、本来取得されるはずの位置「N2」の代わりに、部屋205に対応する位置「N5」が取得されている。
位置未検出データテーブル1010C及び測位不具合データテーブル1020Cの構成は、それぞれ図10Bに示した位置未検出データテーブル1010B及び測位不具合データテーブル1020Bと同様であるが、後述するように、図10Cの例では、図10Bの例とは異なる値が格納される。
ここで、図10Cを参照して、図4〜図9に示した処理の具体例を説明する。
時刻「101」までの処理は、図10Bの例と同様であるため、説明を省略する。図10Bの場合と同様、時刻「101」における処理が終了した時点で、位置未検出データテーブル1010Cには、時刻「101」及び位置「N2」を含むレコードが格納されている。
次に、時刻「102」における位置「N2」が現在の位置として取得された場合、測位不具合検知部142は、図10Aの例の時刻「101」の場合と同様に、ノード「N1」、「N3」及び「N5」の三つを要素として含む隣接ノードの集合を取得する(ステップ601及び602)。
図10Cの例では、時刻「101」における位置「N5」を示す測位データが不連続であると判定され(ステップ603)、現在の位置「N2」は、過去最も新しい不連続な測位データが示す位置「N5」と同一でない(ステップ611)。さらに、現在の位置「N2」は、過去最も新しい連続な測位データが示す位置「N1」と一つのリンクを介して接続されている(ステップ613)。このため、時刻「102」における測位データは連続であると判定される(ステップ605)。この場合、ステップ405〜408は実行されない。
次に、時刻「103」における位置「N5」が現在の位置として取得された場合、測位不具合検知部142は、ノード「N2」のみを要素として含む隣接ノードの集合を取得する(ステップ601及び602)。過去最も新しい測位データが連続であり(ステップ603)、その過去最も新しい測位データが示す位置「N2」が隣接ノードの集合に含まれるため(ステップ604)、時刻「103」における測位データは連続であると判定される(ステップ605)。この場合も、ステップ405〜408は実行されない。
次に、時刻「104」における位置「N3」が現在の位置として取得された場合、測位不具合検知部142は、ノード「N2」、「N4」及び「N6」の三つを要素として含む隣接ノードの集合を取得する(ステップ601及び602)。この場合、過去最も新しい測位データが連続と判定され(ステップ603)、過去最も新しい測位データが示す位置「N5」が隣接ノードの集合に含まれず(ステップ604)、現在の位置「N3」と過去最も新しい測位データが示す位置「N5」が同一でないため(ステップ606)、時刻「104」における測位データは不連続であると判定される(ステップ607)。この場合、ステップ405〜408が実行される。
具体的には、隣接ノードの集合からいずれかのノード(図10Cの例ではノード「N2」)が本来検出されるべきノードとして選択され(ステップ703)、時刻「104」及び位置「N2」を含むレコードが位置未検出データテーブル1010Cに追加される(ステップ704)。
また、時刻「104」において、過去5単位時間以内のレコードのうち、位置1003が「N2」である1レコード及び位置1013が「N2」である2レコードが取得される(ステップ801及び802)。
集合R1に含まれるレコードの数「1」と集合R2に含まれるレコードの数「2」の合計「3」がxの値「3」以上であり、かつ、合計「3」の値に対する集合R2に含まれるレコードの数「2」の割合(すなわち位置未検出割合)「0.67」がpの値「0.5」以上であるため(ステップ803)、この時点の測位データが測位不具合条件を満たすことが返される(ステップ804)。
この場合、測位不具合条件を満たすと判定された検証対象の位置「N2」、測位不具合条件を満たすと判定された時刻「104」及び位置未検出割合「0.67」が、それぞれ、測位不具合データテーブル1020Bの位置1021、検知時刻1022及び未検出割合1023として格納される(ステップ408及び901)。
サーバ装置130は、入出力装置135を用いて、位置未検出データ154又は測位不具合データ155等の内容を(例えばステップ408において)管理者に出力してもよい。管理者は、これらの情報を参照して、どの位置において測位の不具合が発生しているかを知り、その情報に基づいて、測位不具合の原因究明及び不具合解消のための対策を迅速に行うことができる。
次に、測位データの補正について説明する。
図11は、本発明の実施形態のサーバ装置130が実行する測位データ補正処理を示すフローチャートである。
サーバ装置130の測位データ補正部143は、最初に、測位データの補正条件を設定する(ステップ1101)。この処理については、図12を参照して後述する。
次に、測位データ補正部143は、基地局装置120から、端末装置110の位置情報を含む測位データを受信する(ステップ1102)。受信した測位データは、測位データ153として格納される。測位部141が測位データを受信してそれを測位データ153として格納し、測位データ補正部143が測位データ153を参照してもよい。測位データ153の具体例については、図15を参照して後述する。
次に、測位データ補正部143は、ネットワークデータ152及び測位データ153に基づいて、現在の測位データと過去の測位データとの間の連続性を検証する(ステップ1103)。この処理は図4のステップ403と同様に実行されるため、ここでは説明を省略する。
次に、測位データ補正部143は、ステップ1103の検証結果に基づいて、現在の測位データと過去の測位データとが連続であるか否かを判定する(ステップ1104)。不連続であると判定された場合、処理はステップ1105に進み、連続であると判定された場合、処理はステップ1108に進む。
ステップ1105において、測位データ補正部143は、測位データ補正条件が満たされるか否かを検証する処理を実行し、次に、ステップ1106において、測位データ補正部143は、検証処理の結果に従って測位データ補正条件が満たされるか否かを判定する。検証処理については、図13を参照して後述する。補正条件が満たされる場合、処理はステップ1107に進み、満たされない場合、処理はステップ1108に進む。
ステップ1107において、測位データ補正部143は、測位データを補正する。この処理については、図14を参照して後述する。
ステップ1108において、測位データ補正部143は、測位データ補正処理を終了するか否かを判定する。例えば、管理者が処理の終了を指示した場合又は所定の終了条件が満たされた場合に測位データ補正処理を終了すると判定されてもよい。測位データ補正処理を終了すると判定された場合、測位データ補正部143は測位データ補正処理を終了する。一方、測位データ補正処理を終了しないと判定された場合、処理はステップ1102に戻る。
図12は、本発明の実施形態のサーバ装置130が実行する測位データ補正条件設定処理を示すフローチャートである。
図12に示す処理は、図11のステップ1101において実行される。
測位データ補正部143は、例えば、測位データの位置として本来検出されるべき位置に関して、過去t単位時間以内に、位置未検出割合がp以上である場合に、測位データを補正するように測位データ補正条件を設定することができる(ステップ1201)。この場合、測位データ補正部143は、上記の時間t及び割合pを任意に(例えば管理者から入力された値を)設定することができる。
以上で測位不具合条件設定処理が終了する。
図13は、本発明の実施形態のサーバ装置130が実行する測位データ補正条件の検証処理を示すフローチャートである。
図13に示す処理は、図11のステップ1105において実行される。
最初に、測位データ補正部143は、測位不具合データテーブルから、過去t単位時間以内のレコードのうち、本来検出されるべき位置を含むレコードの集合R3を取得する(ステップ1301)。
次に、測位データ補正部143は、集合R3に、位置未検出割合がp以上であるレコードが含まれるか否かを判定する(ステップ1302)。位置未検出割合がp以上であるレコードが含まれる場合、補正条件が満たされることが返され(ステップ1303)、含まれない場合、補正条件が満たされないことが返される(ステップ1304)。
以上で測位データ補正条件の検証処理が終了する。
図14は、本発明の実施形態のサーバ装置130が実行する測位データ補正処理を示すフローチャートである。
図14に示す処理は、図11のステップ1107において実行される。
測位データ補正部143は、測位データテーブルの補正対象のレコードの補正位置の値を、「NULL」から本来検出されるべき位置に更新する(ステップ1401)。以上で測位データ補正処理が終了する。
図15は、本発明の実施形態における測位データ及びそれに基づく測位データ補正処理の具体例を示す説明図である。
具体的には、図15は、端末装置110が図10Bの場合と同様の経路を移動し、図10Bの場合と同様に、部屋202において一度も測位に成功しなかった場合の測位データ等を示す。
図15に示す測位データテーブル1000Dの各レコードは、図10Bに示した測位データテーブル1000Bと同様の端末ID1001、時刻1002及び位置1003に加えて、補正された後の位置が格納される補正位置1004を含む。補正が行われる前の時点においては、いずれのレコードの補正位置1004の値も「NULL」である。
ステップ1103において測位データの連続性が検証され、その結果、測位不具合データテーブル1020Bが取得される。これは、図10Bに示したものと同じである。なお、図15では省略されているが、図10Bに示したものと同じ位置未検出データテーブル1010Bも取得される。
測位データテーブル1000D及び測位不具合データテーブル1020Bが取得された場合、時刻「103」において位置未検出割合がpの値「0.5」を超える。すなわち、時刻「103」において測位データ補正条件が満たされるため、時刻「103」に対応する補正位置1004の値が「NULL」から位置1021の値「N2」に補正される(測位データテーブル1000E参照)。
サーバ装置130は、端末装置110のユーザに対して、端末装置110の位置情報を利用したサービス(例えば地図情報の送信又は経路案内等)を提供している場合、上記のように補正された位置情報を用いてサービスを提供することができる。これによって、環境変化等のために正常な測位が阻害された場合にも、サービスの品質が提供しないようにシステムの運用を継続することができる。
次に、環境変化の推定について説明する。
図16は、本発明の実施形態のサーバ装置130が実行する環境変化推定処理を示すフローチャートである。
サーバ装置130の環境変化推定部144は、最初に、環境変化の推定条件を設定する(ステップ1601)。この処理については、図17を参照して後述する。
次に、環境変化推定部144は、所定の時間が経過するのを待つ(ステップ1602)。この間、図6A及び図6Bに示した測位データ連続性検証処理が実行される必要がある。
所定の時間が経過すると、環境変化推定部144は、環境変化の推定条件が満たされるか否かを検証し(ステップ1603)、その検証結果に基づいて、環境変化の推定条件が満たされるか否かを判定する(ステップ1604)。検証処理については、図18を参照して後述する。環境変化の推定条件が満たされる場合、処理はステップ1605に進み、満たされない場合、処理はステップ1606に進む。
ステップ1605において、環境変化推定部144は、推定条件を満たすと判定された環境変化の検知時刻及び種類を管理者に通知する。この通知は、サーバ装置130が管理者に対して環境変化の検知時刻及び種類を示す情報を出力することによって行われる。例えば、入出力装置135が当該情報を表示してもよいし、通信装置132がネットワーク170に当該情報を送信してもよい。
次に、環境変化推定部144は、環境変化推定処理を終了するか否かを判定する(ステップ1606)。例えば、管理者が処理の終了を指示した場合又は所定の終了条件が満たされた場合に環境変化推定処理を終了すると判定されてもよい。環境変化推定処理を終了すると判定された場合、環境変化推定部144は環境変化推定処理を終了する。一方、環境変化推定処理を終了しないと判定された場合、処理はステップ1602に戻る。
図17は、本発明の実施形態のサーバ装置130が実行する環境変化の推定条件設定処理を示すフローチャートである。
図17に示す処理は、図16のステップ1601において実行される。
環境変化推定部144は、測位不具合データテーブルを参照して、過去t単位時間以内に、位置未検出割合がq以上であったレコードに含まれる位置において、レイアウト変更及び混雑の少なくとも一方に起因する環境変化が発生したことを推定するように、環境変化の推定条件を設定する(ステップ1701)。
さらに、環境変化推定部144は、測位不具合データテーブルを参照して、過去t単位時間以内に、位置未検出割合がp以上q未満であったレコードに含まれる位置において、混雑に起因する環境変化が発生したことを推定するように、環境変化の推定条件を設定する(ステップ1702)。
以上で、環境変化の推定条件設定処理が終了する。
図18は、本発明の実施形態のサーバ装置130が実行する環境変化推定条件の検証処理を示すフローチャートである。
図18に示す処理は、図16のステップ1603において実行される。
環境変化推定部144は、測位不具合データテーブルを参照して、過去t単位時間以内に、位置未検出割合がq以上であったレコードR4を取得し、R4に含まれる位置において、レイアウト変更及び混雑の少なくとも一方に起因する環境変化が発生したと推定する(ステップ1801)。
さらに、環境変化推定部144は、測位不具合データテーブルを参照して、過去t単位時間以内に、位置未検出割合がp以上でq未満あったレコードR5を取得し、R5に含まれる位置において、混雑に起因する環境変化が発生したと推定する(ステップ1802)。
ここで、環境変化推定処理の具体例を、図10B及び図10Cを参照して説明する。この具体例において、環境変化の推定条件は、p=0.5、q=0.9と設定される(ステップ1701及び1702)。
図10Bの測位データテーブル1000Bに示すような測位データが取得された場合、位置「N2」及び時刻「103」に対応する未検出割合1023が「1」と算出される(測位不具合データテーブル1020B参照)。この未検出割合の値は、qの値「0.9」以上であるため、位置「N2」においてレイアウト変更及び混雑の少なくとも一方に起因する環境変化が発生したことが推定される(ステップ1801)。そして、その環境変化が検知された時刻「103」と、推定された環境変化の内容、すなわち、その環境変化がレイアウト変更及び混雑の少なくとも一方に起因するものであることを示す情報が管理者に通知される(ステップ1605)。
一方、図10Cの測位データテーブル1000Cに示すような測位データが取得された場合、位置「N2」及び時刻「104」に対応する未検出割合1023が「0.67」と算出される(測位不具合データテーブル1020C参照)。この未検出割合の値は、pの値「0.5」以上かつqの値「0.9」未満であるため、位置「N2」において混雑に起因する環境変化が発生したことが推定される(ステップ1802)。そして、その環境変化が検知された時刻「104」と、推定された環境変化の内容、すなわち、その環境変化が混雑に起因するものであることを示す情報が管理者に通知される(ステップ1605)。
なお、図16に示した処理は、図4に示した処理とは独立に実行されてもよいが、図4に示した処理と組み合わせて実行されてもよい。具体的には、図4のステップ401において図16のステップ1601と同様の処理を行い、図4のステップ406から408においてそれぞれ図16のステップ1603から1605と同様の処理を行ってもよい。
上記の環境変化の推定は、ある位置における位置未検出割合(すなわち測位データが不連続であると判定される頻度)が高いほど、持続的な環境変化が発生した可能性が高いという推定に基づく。このため、本実施形態では閾値p及びそれより高い閾値qが設定され、未検出割合が閾値pを超えた場合には一時的な環境変化が発生した可能性があり、未検出割合が閾値qを超えた場合には一時的な環境変化が発生した可能性に加えて持続的な環境変化が発生した可能性があると判定される。なお、未検出割合が閾値qを超えた場合には、一時的な環境変化が発生した可能性よりも持続的な環境変化が発生した可能性が高いと判定し、持続的な環境変化を示す情報のみを管理者に通知してもよい。
ここで、持続的な環境変化とは、その環境変化が発生した後の状態がある程度の期間持続するような環境変化である。上記の説明では持続的な環境変化の原因の一例として屋内空間のレイアウト変更を挙げたが、それ以外の原因によるものであってもよい。一方、一時的な環境変化とは、その環境変化が発生した後の状態が上記の持続的な環境変化の場合ほどには持続しないような環境変化である。上記の説明では一時的な環境変化の原因として、部屋に滞在する人又はそこを通行する人の混雑を挙げたが、それ以外の原因によるものであってもよい。
ステップ1605の通知を受けた管理者は、推定された環境変化の種類に応じた適切な対策を行うことができる。例えば、レイアウト変更に起因する環境変化が推定された場合、管理者は、実際にレイアウト変更が行われたか否かを確認し、行われた場合には、変更後の空間においても正常に測位ができるように、測位装置の移設又は増設等の対策を行うことができる。混雑に起因する環境変化が推定された場合も同様であり、例えば、混雑の影響を受けにくい場所に測位装置を移設又は増設する等の対策を行うことができる。