以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
[1.全体構成]
[1.1.無線ネットワークの構成]
図1は、本発明の実施の形態に係る無線ネットワーク100の構成を示す概略図である。図1に示すように、無線ネットワーク100は、無線ノードS−1,S−2,・・・,S−kと、シンク4と、位置推定装置5とを備える。kは5以上の整数である。
図1では、無線ノードの一部に対する符号の表示を省略している。また、無線ノードの一部が、通知パケットDTGをシンク4に送信している様子を図示しているが、他の無線ノードも、通知パケットDTGをシンク4に送信する。通知パケットDTGの詳細については、後述する。
無線ノードS−1〜S−k及びシンク4は、近距離無線通信を行うことにより、無線ネットワーク100を構成する。無線ノード及びシンク4は、例えば、BLE(Bluetooth Low Energy)や、IEEE802.15.4などの通信規格に準拠した無線通信を行う。
無線ノードS−1〜S−kは、無線通信空間10(例えば、など)に配置される。無線通信空間10は、例えば、ショッピングセンターや駅、オフィスビル、工場などの商業施設である。無線ノードは、無線通信空間10において固定される。無線ノードは、例えば、センサを搭載したセンシングデバイスである。固定無線ノードの各々に搭載されたセンサは、温度、湿度などを検出し、これらの検出値を無線通信によってシンク4に送信する。
無線ノードS−1〜S−kのうち4個の無線ノードは、絶対位置が予め指定されたアンカーノードである。絶対位置は、例えば、緯度、経度及び標高によって指定される。
なお、無線ノードS−1〜S−kの一部は、無線通信空間10を移動可能な移動ノードでもよい。移動ノードは、例えば、施設内を移動する人物によって保持される通信端末である。移動ノードとして、例えば、スマートフォン、携帯電話、タブレット端末が挙げられる。移動ノードは、アンカーノードに指定されない。
無線ノードの各々は、自己の識別情報(例えば、アドレス)を含む広告パケットを生成し、その生成した広告パケットをブロードキャストする。無線ノードの各々は、他の無線ノードから広告パケットを受信した場合、その受信した広告パケットを復調し、復調した広告パケットに含まれる識別情報を検出する。
図2は、無線ノードS−1において生成される隣接ノード情報21Sの一例を示す図である。図2に示すように、隣接ノード情報21Sは、自己の識別情報と、受信した広告パケットから検出した他の無線ノードの識別情報とを記録したデータである。
隣接ノード情報21Sにおいて、無線ノードS−1の識別情報が「Address S−1」である。隣接ノード情報21Sにおける隣接ノードの欄には、他の無線ノードから受信した広告パケットから検出された識別情報が記録される。具体的には、図2に示す隣接ノード情報21Sは、無線ノードS−2の識別情報「Address S−2」と、無線ノードS−3の識別情報「Address S−3」と、無線ノードS−7の識別情報「Address S−7」とを含む。
無線ノードS−2〜S−kは、無線ノードS−1と同様に、図2に示す隣接ノード情報21Sと同様の隣接ノード情報を生成する。つまり、全ての無線ノードは、隣接ノード情報を生成する。移動ノードは、自己が移動無線ノードであることを示す情報を含んでもよい。移動ノードは、自己が移動ノードであることを示す情報として、自己が備える加速度センサにより検出された加速度を隣接ノード情報に含めてもよい。
このように、無線ノードの各々は、少なくとも、自己の識別情報と、受信した広告パケットから検出した他の無線ノードの識別情報とを記録した隣接ノード情報を生成する。つまり、隣接ノード情報は、無線ノードの各々が他の無線ノードから直接受信した広告パケットから検出した識別情報を含む。言い換えれば、隣接ノード情報は、無線ノードの各々から1ホップの位置に存在する無線ノードの情報を含む。1ホップとは、2つの無線ノードが他の無線ノードを介することなく通信することを示す。
無線ノードの各々は、生成した隣接ノード情報を含む通知パケットDTGを生成してシンク4へ送信する。図1に示す例では、無線ノードの一部が通知パケットDTGをシンク4に直接送信するように図示している。しかし、無線ノードが、通知パケットDTGをシンク4に直接送信できない場合がある。この場合、通知パケットDTGは、マルチホップで無線ノードからシンク4へ送信される。
マルチホップとは、2つの無線ノードが他の無線ノードを介して通信することを示す。例えば、2ホップは、2つの無線ノードを中継する他の無線ノードの数が1つであることを意味する。つまり、通知パケットDTGが、無線ノードからシンク4へ送信される場合、通知パケットDTGの通信経路は特に限定されない。シンク4は、各無線ノードから送信される通知パケットDTGを受信することができればよい。
シンク4は、無線ノードの各々から通知パケットDTGを受信し、その受信した通知パケットDTGから隣接ノード情報を検出する。シンク4は、その検出した隣接ノード情報を位置推定装置5へ送信する。
位置推定装置5は、無線ノードS−1〜S−kの各々の位置を推定する。位置推定装置5は、例えば、クラウド上に設置され、シンク4から隣接ノード情報を受信する。これによって、位置推定装置5は、無線ノードの全てから隣接ノード情報を取得し、その取得した隣接ノード情報に基づいて、無線ノードS−1〜S−kの各々の位置を推定する。位置推定装置5によるS−1〜S−kの位置の推定の詳細については、後述する。
無線ノードの各々において、広告パケットは、予め設定された時間間隔でブロードキャストされる。無線ノードの各々は、隣接ノード情報を含む通知パケットDTGを定期的に送信する。これにより、位置推定装置5は、各無線ノードから隣接ノード情報を定期的に取得することができるため、無線ノードS−1〜S−kの位置推定を繰り返し行う。
[1.2.無線ノードの構成]
図3は、図1に示す無線ノードS−1の構成を示す機能ブロック図である。図3に示すように、無線ノードS−1は、アンテナ11と、送受信部12と、制御部13とを含む。
送受信部12は、アンテナ11を介して広告パケットを受信し、その受信した広告パケットを制御部13へ出力する。また、送受信部12は、無線ノードS−1の識別情報を含む広告パケットを制御部13から受けた場合、その受けた広告パケットをアンテナ11を介してブロードキャストする。送受信部12は、隣接ノード情報を含む通知パケットDTGを制御部13から受けた場合、その受けた通知パケットDTGの宛先をシンク4に設定し、宛先がシンク4に設定された通知パケットDTGをアンテナ11を介して送出する。
制御部13は、無線ノードS−1の識別情報を予め保持している。制御部13は、無線ノードS−1の識別情報を含む広告パケットを生成し、その生成した広告パケットを送受信部12へ出力する。
制御部13は、送受信部12から広告パケットを受けると、その受けた広告パケットから、他の無線ノードの識別情報を検出する。例えば、無線ノードS−1が、無線ノードS−2、S−3及びS−7から広告パケットを受信した場合、制御部13は、受信した3個のパケットからそれぞれ、無線ノードS−2の識別情報、無線ノードS−3の識別情報、無線ノードS−7の識別情報を検出する。そして、制御部13は、無線ノードS−2,S−3,S−7の識別情報を、自己(無線ノードS−1)の識別情報に対応付けた隣接ノード情報21Sを生成する。制御部13は、その生成した隣接ノード情報21Sを含む通知パケットDTGを生成して送受信部12へ出力する。
なお、図1に示す無線ノードS−2〜S−kの構成は、図3に示す無線ノードS−1の構成と同じである。
[1.4.シンク4の構成]
図4は、図1に示すシンク4の構成を示す機能ブロック図である。図4に示すように、シンク4は、アンテナ41と、送受信部42と、制御部43とを含む。
送受信部42は、アンテナ41を介して通知パケットDTGを受信し、その受信した通知パケットDTGを制御部43へ出力する。また、送受信部42は、制御部43から隣接ノード情報を受けると、その受けた隣接ノード情報をアンテナ41及び図示しないインターネットを介して位置推定装置5へ送信する。
制御部43は、送受信部42から通知パケットDTGを受けると、その受けた通知パケットDTGから隣接ノード情報を検出し、その検出した隣接ノード情報を送受信部42へ出力する。
[1.5.位置推定装置5の構成]
図5は、図1に示す位置推定装置5の構成を示す機能ブロック図である。図に示すように、位置推定装置5は、取得部51と、対称面決定部52と、仮想ノード情報生成部53と、トポロジ生成部54と、自己位置生成部55と、仮想ノード位置生成部56と、位置更新部57と、変換部58と、トポロジ矛盾判定部59と、を備える。
取得部51は、シンク4からインターネットを介して各無線ノードの隣接ノード情報を受信することにより、各無線ノードの隣接ノード情報を取得する。取得部51は、その受信した隣接ノード情報をトポロジ生成部54及び自己位置生成部55へ出力する。
対称面決定部52は、無線ノード及び仮想ノードの位置推定に用いる座標系(暫定座標系)における対称面を決定する。対称面は、上記の座標系において、無線ノードが実際に配置される無線通信空間10における底面に相当する。
仮想ノード情報生成部53は、無線ノードの隣接ノード情報を取得部51から受ける。仮想ノード情報生成部53は、無線ノードの隣接ノード情報に基づいて、対称面決定部52により決定された対称面を基準として無線ノードと面対称に配置された仮想ノードを生成し、その生成した仮想ノードの隣接ノード情報を生成する。
トポロジ生成部54は、無線ノードの隣接ノード情報を取得部51から受け、仮想ノードの隣接ノード情報を仮想ノード情報生成部53から受ける。トポロジ生成部54は、その受けた無線ノード及び仮想ノードの隣接ノード情報に基づいて、トポロジを生成する。トポロジは、無線ノード及び仮想ノードの配置関係を示す情報であり、無線ノード及び仮想ノードの各々に対して生成される。トポロジ生成部54は、その生成したトポロジを位置更新部57へ出力する。
自己位置生成部55は、取得部51から無線ノードの隣接ノード情報を受け、その受けた隣接ノード情報に基づいて、無線ネットワーク100を構成する無線ノードS−1〜S−kを認識する。自己位置生成部55は、暫定座標系において、その認識した無線ノードS−1〜S−kの仮の自己位置をランダムに生成する。
仮想ノード位置決定部56は、自己位置生成部55から無線ノードS−1〜S−kの仮の自己位置を受ける。仮想ノード位置生成部56は、その受けた無線ノードS−1〜S−kの仮の自己位置に基づいて、暫定座標系における仮想ノードの仮の自己位置を生成する。仮想ノードの仮の自己位置は、暫定座標系において設定された対称面を基準として無線ノードと面対称の関係にある位置である。
位置更新部57は、トポロジ生成部54からトポロジを受け、自己位置生成部55から無線ノードの仮の自己位置を受け、仮想ノード位置生成部56から仮想ノードの仮の自己位置を受ける。位置更新部57は、その受けたトポロジと、無線ノードの仮の自己位置と、仮想ノードの仮の自己位置とに基づいて、後述する方法によって、無線ノード及び仮想ノードの仮の自己位置を更新することにより、無線ノード及び仮想ノードの相対推定位置を取得する。
変換部58は、アンカーノードの絶対位置を予め保持している。変換部58は、無線ノード及び仮想ノードの相対推定位置を位置更新部57から受ける。変換部58は、その受けた相対推定位置とアンカーノードの絶対位置とに基づいて、後述する方法によって無線ノード及び仮想ノードの相対推定位置を絶対位置に変換する。変換部58は、その変換した無線ノード及び仮想ノードの絶対位置をトポロジ矛盾判定部59へ出力する。
トポロジ矛盾判定部59は、無線ノード及び仮想ノードの絶対位置を変換部58から受ける。トポロジ矛盾判定部59は、その受けた無線ノード及び仮想ノードの絶対位置に基づいて、無線ノード及び仮想ノードの各々におけるトポロジ矛盾の発生頻度を示す領域判定値を計算する。領域判定値の計算方法については、後述する。
トポロジ矛盾判定部59は、計算した領域判定値が所定の条件を満たす場合、その受けた無線ノード及び仮想ノードの絶対位置でトポロジ矛盾が発生していないと判断する。トポロジ矛盾が発生していない場合、トポロジ矛盾判定部59は、無線ノードS−1〜S−kの絶対位置を位置推定結果として出力する。
[2.位置推定装置5の動作の概略]
位置推定装置5は、上述のように、無線ノードの仮の自己位置が設定される暫定座標系において、仮想ノードを配置する。位置推定装置5は、無線ノード及び仮想ノードの各々の隣接ノード情報を用いて、無線ノードの位置を推定する。以下、位置推定装置5が、無線ノードの位置を推定するにあたり,仮想ノードを使用する理由を説明する。
(直方体空間に配置された無線ノードの位置推定)
無線ノードS−1〜S−kを施設の屋内における略直方体空間に配置した場合において、無線ノードS−1〜S−kの位置を、従来の位置推定方法を用いて推定した場合、無線ノードS−1〜S−kの位置推定精度が低下することがある。
図6は、施設内の略直方体空間における無線ノードの配置の一例を示す図である。図6において、無線通信空間10は、施設内の直方体空間である。xyz座標系は、無線ノードの位置推定に用いる暫定座標系である。xy平面は、無線通信空間10における床面であり、施設の床面である水平面に相当する。z方向は、無線通信空間10における高さ方向であり、施設の高さ方向に相当する。一般的に、施設の屋内空間におけるz方向のサイズは、x方向のサイズ及びy方向のサイズに比べて小さい。
図7は、無線ノードを直方体空間に配置した場合における、従来の位置推定方法によるシミュレーション結果を示すグラフである。シミュレーションでは、直方体空間の底面(水平面)の形状を正方形に設定した上で、高さ方向のサイズを様々な数値に設定することにより、無線ノードの位置推定誤差と、高さ方向のサイズとの関係を調べた。
図7に示すグラフにおいて、横軸は、直方体空間の底面における一の方向のサイズに対する高さの割合を示し、縦軸は、無線ノードの位置推定誤差を示す。位置推定誤差の計算方法については、後述する。一の方向は、図6に示す無線通信空間10においてx方向又はy方向に相当する。高さの方向は、図6に示す無線通信空間10においてz方向に相当する。
図7に示すように、底面における一の方向のサイズに対する高さの割合が0.4以下となった場合、位置推定誤差が上昇している。つまり、図7は、施設の屋内における直方体空間に無線ノードを配置して、従来の位置推定方法を用いて無線ノードの位置を推定した場合、無線ノードの位置推定精度が低下する場合があることを示している。
直方体空間に配置された無線ノードを従来の位置推定方法を用いて推定した場合における、位置推定精度の低下の理由として、以下の理由が考えられる。図7に示すように、無線通信空間10における高さが、無線通信空間10における水平方向(x方向又はy方向)のサイズよりも小さい場合、高さ方向におけるホップ数が、水平方向におけるホップ数よりも小さくなる。高さ方向におけるホップ数が少ない場合、従来の位置推定方法により生成されたトポロジでは、高さ方向に関する情報が不足する。高さ方向に関する情報が不足するトポロジを用いて、無線ノードの位置を推定することにより、無線ノードの位置推定精度が低下すると考えられる。
(無線ノードと仮想ノードとの位置関係)
図8は、無線通信空間10における無線ノードの配置の一例を示す図である。図8において、無線ノードS−1,S−3,S−4がアンカーノードであり、無線通信空間10における床面10Aに配置されている。床面10Aは、太い実線で示されている。
図8において、2つの無線ノードを結ぶ実線は、2つの無線ノードが直接通信可能であることを示す。例えば、無線ノードS−1は、無線ノードS−2,S−3,S−7と直接通信可能であり、図2に示す隣接ノード情報21Sを有する。
図8において、無線ノードS−3から無線ノードS−9へのホップ数は、7である。つまり、無線通信空間10における水平方向(y方向)のホップ数は、7である。無線ノードS−1から無線ノードS−6へのホップ数は、2である。つまり、無線通信空間10における高さ方向(z方向)のホップ数は、2である。無線通信空間10が直方体空間である場合、高さ方向のホップ数は、水平方向のホップ数よりも小さい。図8に示す無線ノードS−1〜S−kの位置を、従来の位置推定方法を用いて推定した場合、上述のように、位置推定精度が劣化する虞がある。
図9は、図8に示す無線通信空間10に隣接する仮想通信空間20を配置した図である。図9に示すように、仮想通信空間20は、無線通信空間10における床面10Aを対称面として無線通信空間10と面対称の関係にある仮想的な空間である。仮想ノードは、無線ノードの各々と1対1で対応するように、仮想通信空間20に配置される。つまり、仮想ノードは、床面10Aに配置された無線ノードを除き、床面10Aを基準として無線ノードと面対称の関係となるように仮想通信空間20に配置される。
図9に示す例では、アンカーノード(無線ノードS−1,S−4,S−5)以外の無線ノードに対応する仮想ノードが存在する。例えば、仮想ノードV−2は、無線ノードS−2に対応しており、床面10Aを対称面として無線ノードS−2と面対称の位置にある。つまり、床面10Aに配置された無線ノード以外の一の無線ノードと、この一の無線ノードに対応する仮想ノードとは、床面10Aを基準として面対称の位置にある。
仮想ノードを仮想通信空間20に配置した結果、高さ方向(z方向)におけるホップ数が増加する。無線通信空間10と仮想通信空間20とを合わせた空間(合成空間30)において、無線ノードS−6から仮想ノードV−6までの最短通信経路は、無線ノードS−7、無線ノードS−1、仮想ノードV−7を経由する。つまり、無線ノードS−6から仮想ノードV−6までの最小ホップ数は4である。無線通信空間10における高さ方向の最小ホップ数が2であるのに対して、合成空間30における高さ方向の最小ホップ数は、4である。つまり、仮想通信空間に仮想ノードを配置することにより、高さ方向におけるホップ数を増やすことができる。
なお、床面10Aに配置されたアンカーノード(無線ノードS−1,S−4,S−5)に対応する仮想ノードは生成されない。無線ノードS−1,S−4,S−5に対応する仮想ノードの位置が、無線ノードS−1,S−4,S−5の位置と一致するためである。
位置推定装置5は、無線ノードの隣接ノード情報だけでなく、仮想ノードの隣接ノード情報を用いてトポロジを生成する。このようにして生成されたトポロジは、無線ノードの隣接ノード情報のみを用いて生成されたトポロジに比べて、高さ方向の情報を多く含んでいる。この結果、位置推定装置5は、従来の位置推定方法を用いた場合に比べて、無線ノードの位置を高い精度で推定することが可能となる。仮想ノードの隣接ノード情報の生成については、後述する。
[3.位置推定装置5の動作]
[3.1隣接ノード情報の取得]
図10は、位置推定装置5の動作を示すフローチャートである。以下、図10を参照しながら、位置推定装置5が無線ノードの位置を推定する動作について詳しく説明する。
位置推定装置5において、取得部51が、無線ノードの隣接ノード情報をシンク4から取得する(ステップS501)。取得部51は、その取得した無線ノードの隣接ノード情報を、仮想ノード情報生成部53とトポロジ生成部54と自己位置生成部55とに出力する。
[3.2.仮想ノードの隣接ノード情報の生成]
仮想ノード情報生成部53は、無線ノードの隣接ノード情報を取得部51から受け、その受けた隣接ノード情報に基づいて、仮想ノードの隣接ノード情報を生成する(ステップS502)。仮想ノード情報生成部53は、その生成した仮想ノードの隣接ノード情報をトポロジ生成部54に出力する。
具体的には、仮想ノード情報生成部53は、無線ノードS−1〜S−kのうち、無線通信空間10の床面10Aに配置された無線ノード以外の無線ノードを特定する。図9に示す例では、アンカーノード(無線ノードS−1,S−2,S−4)が床面10Aに配置されているため、仮想ノード情報生成部53は、アンカーノード以外の無線ノードを特定する。
仮想ノード情報生成部53は、その特定した無線ノードの各々に関して、床面10Aを対称面として面対称の関係にある仮想ノードを生成する。仮想ノード情報生成部53は、特定した無線ノードにおいて、一の無線ノードに対応する仮想ノードの隣接ノード情報を、この一のノードに対応する隣接ノード情報に基づいて生成する。仮想ノードの隣接ノード情報は、仮想ノードの各々に対して生成される。
以下、仮想ノードV−7の隣接ノード情報を生成する場合を例にして、ステップS502をさらに詳しく説明する。
図9に示すように、仮想ノードV−7は、床面10Aを対称面として、無線ノードS−7と面対称の関係にある。仮想ノード情報生成部53は、仮想ノードV−7の隣接ノード情報を、無線ノードS−7の隣接ノード情報に基づいて作成する。
図11は、図9に示す無線ノードS−7の隣接ノード情報27Sを示す図である。図11に示すように、無線ノードS−7の隣接ノード情報27Sは、自己(無線ノードS−7)の識別情報と、自己(無線ノードS−7)から1ホップの位置にある隣接ノードの識別情報とを含む。図9に示すように、無線ノードS−7から1ホップの位置には、無線ノードS−1,S−2,S−6,S−8が配置されている。このため、隣接ノード情報27Sは、無線ノードS−7の隣接ノードとして、無線ノードS−1,S−2,S−6,S−8の識別情報を含む。
仮想ノード情報生成部53は、隣接ノード情報27Sに記録されている隣接ノードの識別情報に基づいて、仮想ノードV−7の隣接ノードを特定する。
最初に、仮想ノード情報生成部53は、無線ノードS−7の隣接ノードである無線ノードS−2,S−6,S−8の各々に対応する仮想ノードを、仮想ノードV−7の隣接ノードとして特定する。具体的には、仮想ノード情報生成部53は、無線ノードS−2に対応する仮想ノードV−2を、仮想ノードV−7の隣接ノードとして特定する。図9を参照して、無線ノードS−2が、無線ノードS−7の隣接ノードであり、床面10Aを対称面として仮想ノードV−2と面対称の関係にあるためである。同様に、仮想ノード情報生成部53は、無線ノードS−6,S−8と面対称の関係にある仮想ノードV−6,V−8を、仮想ノードV−7の隣接ノードとして特定する。
図11に示すように、隣接ノード情報27Sは、無線ノードS−7の隣接ノードとして無線ノードS−1の識別情報を含む。無線ノードS−1が無線通信空間10の床面10Aに配置されているため、無線ノードS−1に対応する仮想ノードは、上述のように生成されない。無線ノードS−7の隣接ノード情報が、床面10Aに配置されている無線ノードS−1を含む場合、仮想ノード情報生成部53は、無線ノードS−1を、無線ノードS−7に対応する仮想ノードV−7の隣接ノードに特定する。
図12は、図9に示す仮想ノードV−7の隣接ノード情報27Vを示す図である。図12に示すように、隣接ノード情報27Vは、自己(仮想ノードV−7)の識別情報と、仮想ノードV−7の隣接ノードの識別情報を含む。隣接ノード情報27Vは、仮想ノードV−7の隣接ノードの識別情報として、無線ノードS−1の識別情報と、仮想ノードV−1,V−3,V−6,V−8の識別情報とを含む。図9に示す仮想ノードの識別情報は、仮想ノード情報生成部53により適宜生成される。
[3.3.トポロジの生成]
トポロジ生成部54は、無線ノードの隣接ノード情報を取得部51から受け、仮想ノードの隣接ノード情報を仮想ノード情報生成部53から受ける。トポロジ生成部54は、その受けた無線ノードの隣接ノード情報及び仮想ノードの隣接ノード情報に基づいて、無線ノード及び仮想ノードの各々に対応するトポロジを生成する(ステップS503)。トポロジ生成部54は、その生成したトポロジを位置更新部57へ出力する。
以下の説明において、無線ノード及び仮想ノードを総称して「位置推定対象ノードE」と記載し、位置推定対象ノードEのうち、i番目のノードを「位置推定対象ノードE−i」と記載する。i番目のノードは、無線ノード及び仮想ノードのいずれか一方である。iは、1以上、(2k−p)以下の整数である。pは、対称面である床面10Aに配置された無線ノードの数である。図9に示す例の場合、床面10Aには、3つのアンカーノードが配置されているため、pは、3に設定される。
ステップS503において、トポロジ生成部54は、以下の(1)〜(3)の処理を実行して、各位置推定対象ノードに対応するトポロジを生成する。
(1)位置推定対象ノードE−iの隣接ノード情報に含まれる位置推定対象ノードを、位置推定対象ノードE−iの1次近傍ノードE−jとする。jは、i≠jを満たし、1以上(2k−p)以下の整数である。
(2)1次近傍ノードE−jの隣接ノード情報に含まれる位置推定対象ノードで、位置推定対象ノードE−iの隣接ノード情報に含まれない位置推定対象ノードを、位置推定対象ノードE−jを中継ノードとする位置推定対象ノードE−iの2次近傍ノードとする。
(3)同様に、n次近傍ノードの隣接ノード情報に含まれる位置推定対象ノードで、(n−1)次までの近傍ノード群の隣接ノード情報に含まれない位置推定対象ノードを、n次近傍ノードを中継ノードとする位置推定対象ノードE−iの(n+1)次近傍ノードとする。ここで、nは、3以上であることが望ましい。
(4)上記(1)〜(3)を再帰的に繰り返すことにより、位置推定対象ノードE−iの多次近傍ノードを設定する。このようにして設定された位置推定対象ノードE−iの多次近傍ノードが、位置推定対象ノードE−iのトポロジに相当する。
トポロジ生成部54は、上記(1)〜(4)を位置推定対象ノードEの各々について実行し、位置推定対象ノードEの各々についての固定トポロジを生成する。
[3.4.ノード間距離の設定]
位置更新部57は、各位置推定対象ノードEのトポロジを参照して、各位置推定対象ノード間の距離をホップ数を用いて設定する(ステップS504)。
以下、ステップS504を詳しく説明する。トポロジの生成において説明したように、位置推定対象ノードE−iに対応するトポロジは、位置推定対象ノードE−iのn次近傍ノードを示す情報である。トポロジは、位置推定対象ノードE−iを基準にした多次近傍ノードのホップ数に基づいて構成されている。従って、1ホップの位置にある2つの位置推定対象ノードEの距離を一定距離dとした場合、位置更新部57は、位置推定対象ノードE−iからn次近傍ノードまでの距離を、一定距離dとホップ数nとの乗算値(一定距離d×ホップ数n=nd)を計算することにより設定する。
[3.5.位置推定対象ノードの位置推定]
次に、位置推定装置5は、ステップS505〜S508を実行して、位置推定対象ノードの各々の絶対位置を推定する。
(無線ノードの仮の自己位置の設定)
自己位置生成部55は、ステップS502で取得された無線ノードの隣接ノード情報に基づいて、無線ネットワーク100を構成する無線ノードS−1〜S−kを認識する。自己位置生成部55は、その認識した無線ノードS−1〜S−kの仮の自己位置wsq(t)をランダムに生成する(ステップS505)。qは、1以上k以下の整数である。仮の自己位置は、図6に示す無線通信空間10に対応する暫定座標系状に設定される。仮の自己位置wsq(t)において、qは、無線ノードS−1〜S−kのいずれかを示す。tは、仮の自己位置の更新回数を示す。
(仮想ノードの仮の自己位置の設定)
仮想ノード位置生成部56は、自己位置生成部55から出力される無線ノードS−qについての仮の自己位置wsq(t)を受ける。仮想ノード位置生成部56は、その受けた仮の自己位置wsq(t)に基づいて、無線ノードS−qに対応する仮想ノードの仮の自己位置wvq(t)を生成する(ステップS506)。
仮想ノードには、上述のように、無線通信空間10における床面10Aを対称面として面対称の関係にある無線ノードが存在する。従って、仮想ノードの仮の自己位置は、式(1)によって求められる。
式(1)において、(xV,yV,zV)は、仮想ノードの暫定座標系における位置を示す。(xN,yN,zN)は、仮想ノードに対応する無線ノードの暫定座標系における位置である。
なお、仮想ノード位置生成部56は、無線ノードS−qが床面10Aに配置されている場合、仮想ノードV−qの仮の自己位置wvq(t)を生成しない。無線ノードS−qが床面10Aに配置されている場合、無線ノードS−qに対応する仮想ノードが生成されないためである。
(仮の自己位置の更新)
以下の説明において、位置更新部57は、自己位置生成部55から無線ノードの仮の自己位置wsq(t)を取得し、仮想ノード位置生成部56から仮想ノードの仮の自己位置wvq(t)を取得する。以下、位置推定対象ノードE−iについての仮の自己位置を、wi(t)と記載する。
位置更新部57は、位置推定対象ノードE−iの仮の自己位置wi(t)を、所定の更新回数で更新する(ステップS507)。所定の更新回数で更新された後の仮の自己位置が、位置推定対象ノードE−iの相対推定位置として決定される。
具体的には、位置推定対象ノードE−iの仮の自己位置wi(t)は、位置推定対象ノードE−iの仮の自己位置wi(t)とn次近傍ノードの仮の自己位置wn(t)とを用いて計算された距離|wi(t)−wn(t)|が位置対象推定ノードE−iからn次近傍ノードまでのホップ数からなる距離ndに近づくように修正される。
n次近傍ノードの仮の自己位置wn(t)を用いて位置対象推定ノードE−iの仮の自己位置wi(t)を修正するときのn次修正ベクトルは、式(2)によって求められる。
また、位置更新部57は、仮の自己位置の更新の初期段階においては、広い範囲の近傍ノードを使用する。そして、位置更新部57は、仮の自己位置の更新の進行に伴い、更新に使用する近傍ノードのホップ数を減少させて、局所的かつ詳細なトポロジを用いて更新を収束させる。
従って、次式(3)に従って位置対象推定ノードE−iの仮の自己位置wi(t)を更新する。
式(3)において、τnは、ホップ数nにおける更新終了の閾値を示し、τn−1は、ホップ数nにおける更新開始の閾値を示す。また、式(3)において、αi(t)は、t回目の修正における位置対象推定ノードE−iの学習関数であり、次式(4)によって決定される。
式(4)において、ηは、正の減衰定数である。また、学習関数αi(t)の初期値αi(0)は、1である。
最大ホップ数から3ホップまでは、更新回数を均等とし、2ホップは、局所的な位置推定を行うため、他のホップ数における更新回数の2倍の割合として、最大ホップ数から降順に更新開始及び更新終了の閾値を設定する。
そして、位置更新部57は、式(3)の右辺の最上段の修正ベクトルから最下段の修正ベクトルまでを順次適用することにより、位置推定対象ノードE−iの仮の自己位置wi(t)を更新する。
式(3)の右辺の最上段の修正ベクトル(Vi {1}(t)+Vi {n}(t))は、1次修正ベクトルとn次修正ベクトルとの和からなる。式(3)の右辺の上から2番目の修正ベクトル(Vi {1}(t)+Vi {n−1}(t))は、1次修正ベクトルと(n−1)次修正ベクトルとの和からなる。以下同様にして、式(3)の右辺の下から2番目の修正ベクトル(Vi {1}(t)+Vi {3}(t))は、1次修正ベクトルと3次修正ベクトルとの和からなる。式(3)の右辺の最下段の修正ベクトル(Vi {1}(t)+Vi {2}(t))は、1次修正ベクトルと2次修正ベクトルとの和からなる。
従って、位置更新部57は、位置推定対象ノードE−iの1次近傍ノードとn次近傍ノードとを用いて位置推定対象ノードE−iの仮の自己位置wi(t)を更新し、その後、位置推定対象ノードE−iの1次近傍ノードと(n−1)次近傍ノードとを用いて位置推定対象ノードE−iの仮の自己位置wi(t)を更新する。以下、同様にして、位置更新部57は、位置推定対象ノードE−iの1次近傍ノードと3次近傍ノードとを用いて位置推定対象ノードE−iの仮の自己位置wi(t)を更新する。最終的に、位置更新部57は、位置推定対象ノードE−iの1次近傍ノードと2次近傍ノードとを用いて位置推定対象ノードE−iの仮の自己位置wi(t)を更新する。
これによって、位置推定対象ノードE−iの仮の自己位置wi(t)を大局的から局所的に更新でき、位置推定対象ノードE−iの仮の自己位置wi(t)を一定の位置に収束させることができる。
例えば、10次修正ベクトル(n=10)までを用いて位置推定対象ノードE−iの仮の自己位置wi(t)を更新する場合、修正ベクトル(Vi {1}(t)+Vi {10}(t))、(Vi {1}(t)+Vi {9}(t))、・・・、(Vi {1}(t)+Vi {3}(t))を用いた更新回数を1回とすれば、修正ベクトル(Vi {1}(t)+Vi {2}(t))を用いた更新回数は、2回である。その結果、全ての修正ベクトルを用いた更新回数は、10回となる。つまり、修正ベクトル(Vi {1}(t)+Vi {10}(t))、(Vi {1}(t)+Vi {9}(t))、・・・、(Vi {1}(t)+Vi {3}(t))を用いた更新回数をp(pは整数)回とすれば、全ての修正ベクトルを用いた更新回数は、一般的には、8p+2p=10p回となる。
更新回数10pにおける”10”は、n次修正ベクトルのn=10に等しいので、式(2)の右辺における全ての修正ベクトルを用いた更新回数は、一般的には、np回となる。従って、式(3)を用いた仮の自己位置wi(t)の更新回数は、nを決定し、その後、pを決定することにより決定される。
(絶対座標への変換)
変換部58は、ステップS507によって得られた各位置推定対象ノードの相対推定位置(更新が完了した位置推定対象ノードの仮の自己位置Wi(t))を、位置更新部57から受ける。変換部58は、その受けた各位置推定対象ノードの相対推定位置を、アンカーノードの相対推定位置と絶対位置とを用いて絶対位置へ変換する(ステップS509)。
アンカーノードの真位置(=絶対位置)をWA=(XA,YA,ZA)とし、相対推定位置をwA=(xA,yA,zA)とすると、真位置WA=(XA,YA,ZA)は、推定位置wA=(xA,yA,zA)を用いて式(5)のように表される。
3つのアンカーノードそれぞれについて立てられた連立方程式(5)から12個の係数a,b,c,d,e,f,g,h,i,tx,ty,tzを得ることにより、全ての位置推定対象ノードの推定位置wi=(xi,yi,zi)は、次式によって絶対位置Wi=(Xi,Yi,Zi)へ変換される。
変換部58は、式(5)から係数a,b,c,d,e,f,g,h,i,tx,ty,tzを決定し、その決定した係数を式(6)に代入して位置推定対象ノードの全ての相対推定位置を絶対位置に変換する。
[3.6.トポロジ矛盾の判定]
トポロジ矛盾判定部59は、位置推定対象ノードの絶対位置を変換部58から受ける。トポロジ矛盾判定部59は、その受けた位置推定対象ノードの絶対位置に基づいて、位置推定対象ノードの各々におけるトポロジ矛盾の有無を判定して、位置推定対象ノードの各々についての領域判定値を計算する(ステップS509)。
(トポロジ矛盾の定義)
図13は、位置推定対象ノードの位置を推定した場合に生じるトポロジ矛盾を示す概念図である。図13に示すように、位置推定対象ノードE−iは、仮の自己位置wi(t)に存在する。位置推定対象ノードE−iから距離d1の位置に1次近傍ノードが存在し、位置推定対象ノードE−iから距離d2の位置に2次近傍ノードが存在する。
1次近傍ノードのホップ数は、1であり、2次近傍ノードのホップ数は2である。ノード間距離は、上述のように、ホップ数に基づいて設定される。従って、本来のトポロジでは、位置推定対象ノードE−iの仮の自己位置wi(t)は、2次近傍ノードよりも1次近傍ノードに近くなる。
しかし、図13において、距離d2が距離d1より小さいため、位置推定対象ノードE−iの仮の自己位置wi(t)は、1次近傍ノードよりも2次近傍ノードに近い。これは、2次近傍ノードが位置推定対象ノードE−iから1次近傍ノードよりも遠い位置に存在する本来のトポロジに明らかに矛盾する。このように、位置推定の対象である位置推定対象ノードE−iの仮の自己位置wi(t)が1次近傍ノードよりも2次近傍ノードに近いことをトポロジ矛盾と呼ぶ。
図13に示すように、トポロジ矛盾が発生している場合、トポロジの折れ曲がりが発生する。ここで、「トポロジの折れ曲がり」とは、位置推定対象ノードE−iから1次近傍ノードへ向かうベクトルと1次近傍ノードから2次近傍ノードへ向かうベクトルとがなす角が、90度から270度の範囲内にあることを示す。
(トポロジ矛盾の有無の判定)
図14は、トポロジ矛盾が発生しているか否かを判定する処理を説明するための概念図である。
図14(a)に示すように、位置推定対象ノードE−i、位置推定対象ノードE−iの1次近傍ノードE−j、及び位置推定対象ノードE−iの2次近傍ノードであり、かつ、1次近傍ノードE−jの1次近傍ノードである位置推定対象ノードE−hの推定位置をそれぞれwi,wj,whとする。ここで、i,j,hは、いずれも1以上(2k−p)以下の整数であり、i≠j,j≠h,h≠iの条件を満たす。
位置推定対象ノードE−hの真の位置をWhとした場合、位置推定対象ノードE−hの推定位置whは、トポロジの折れ曲がりの要因となる。この場合、wi,wjを基準点とするwhのトポロジ矛盾判定は、whのトポロジ矛盾を検知できる範囲|wh−wi|≦|wj−wi|の外にある(=トポロジ矛盾無しの条件を満たす)。ここで、範囲|wh−wi|は、図13に示す距離d2に相当し、範囲|wj−wi|は、図13に示す距離d1に相当する。つまり、距離d1と距離d2とを単純に比較するだけでは、推定位置whによる折れ曲がりを検知できない。
そこで、図14(b)及び図14(c)に示すように、トポロジ矛盾判定の適応領域を拡大する。図14(b)に示すように、位置推定対象ノードE−i,E−jの推定位置wi,wjを基準点に設定する。そして、この2つの基準点を結ぶ線分L1(L1=wj−wi)の垂直2等分線L1Hを用いて、位置推定対象ノードE−iが配置されている空間を、位置推定対象ノードE−iの推定位置wiに近い領域と、位置推定対象ノードE−jの推定位置wjに近い領域とに分割し、位置推定対象ノードE−hの推定位置whが、分割された2つの領域のどちらに存在するかを判断する。
この場合、垂直2等分線L1Hの左側の領域(斜線を施した領域)は、位置推定対象ノードE−hの推定位置whが、位置推定対象ノードE−iの推定位置wiに近い領域であり、垂直2等分線L1Hの右側の領域は、位置推定対象ノードE−hの推定位置whが位置推定対象ノードE−jの推定位置wjに近い領域である。位置推定対象ノードE−hは、位置推定対象ノードE−iの2次近傍ノードであるので、whは、wjに近い領域内に位置しなければならない。従って、位置推定対象ノードE−hの推定位置whが位置推定対象ノードE−iの推定位置wiに近い領域(斜線を施した領域)に位置する場合(|wh―wi|≦|wh―wj|)、トポロジ矛盾が発生していると判定する。
さらに、折れ曲がりによるトポロジ矛盾の検知領域を拡大するために、図14(c)に示すように、位置推定対象ノードE−jに加えて位置推定対象ノードE−iと位置推定対象ノードE−jの共通の1次近傍ノードE−gを基準点として用いる。そして、位置推定対象ノードE−i,E−gの推定位置wi,wgを基準点に設定し、この2つの基準点を結ぶ線分L2(L2=wg−wi)の垂直2等分線L2Hを用いて、位置推定対象ノードE−hが配置されている空間を、位置推定対象ノードE−iの推定位置wiに近い領域と、位置推定対象ノードE−gの推定位置wgに近い領域とに分割し、位置推定対象ノードE−hの推定位置whが、分割された2つの領域のどちらに存在するかを判断する。
この場合、垂直2等分線L2Hの左側の領域(斜線を施した領域)は、位置推定対象ノードE−hの推定位置whが位置推定対象ノードE−iの推定位置wiに近い領域であり、垂直2等分線L2Hの右側の領域は、位置推定対象ノードE−hの推定位置whが位置推定対象ノードE−gの推定位置wgに近い領域である。
位置推定対象ノードE−hは、位置推定対象ノードE−iの2次近傍ノードであるので、whは、wgに近い領域内に位置しなければならない。従って、位置推定対象ノードE−hの推定位置whが位置推定対象ノードE−iの推定位置wiに近い領域(斜線を施した領域)に位置する場合(|wh―wi|≦|wh―wg|)、トポロジ矛盾判定部59は、トポロジ矛盾が発生していると判定する。
図14(c)に示す領域判定は、共通の1次近傍ノードの組み合わせを複数回変えて実施される。そして、複数回実施した結果において、式(7)により得られる領域判定値VTが所定の閾値よりも大きい場合、位置推定対象ノードE−iにおいてトポロジ矛盾が発生していると最終的に判定する。
式(7)において、VTは、位置推定対象ノードE−iにおける領域判定値を示し、Aは、位置推定対象ノードE−iにおいて、共通1次近傍群を用いてトポロジ矛盾の有無の判定を行った回数を示し、aは、トポロジ矛盾の発生回数を示す。ここで、共通1次近傍群は、トポロジ矛盾の判定基準となる位置推定対象ノードE−iの1次近傍ノードであり、かつ、位置推定対象ノードE−iの2次近傍ノードである位置推定対象ノードE−hの1次近傍ノードである位置推定対象ノードにより構成される。領域判定値VTは、0以上1以下の数値であり、判定対象の位置推定対象ノードE−iにおいてトポロジ矛盾の発生回数が少ないほど、その値が0に近づく。
このようにして、位置推定対象ノードの各々でトポロジ矛盾の有無を判定することにより、折れ曲がりによるトポロジ矛盾の検知領域を拡大でき、折れ曲がりによるトポロジ矛盾を効果的に検出できる。
トポロジ矛盾判定部59は、位置推定対象ノードの各々を基準にしてトポロジ矛盾の有無の判定を行うことにより、位置推定対象ノードの各々についての領域判定値を計算する。トポロジ矛盾判定部59は、位置推定対象ノードの各々についての領域判定値の平均値を計算する。領域判定値の平均値は、領域判定値と同様に、0以上1以下の数値であり、位置推定対象ノードにおけるトポロジ矛盾の発生回数が少ないほど、その値が0に近づく。
トポロジ矛盾判定部59は、ステップS509で計算された領域判定値の平均値を所定の閾値と比較する(ステップS510)。
領域判定値の平均値が所定の閾値を下回った場合(ステップS510においてYes)、トポロジ矛盾判定部59は、位置推定対象ノードの位置推定が終了したと判断する。この場合、トポロジ矛盾判定部59は、ステップS508で得られた位置推定対象ノードの絶対位置のうち、無線ノードS−1〜S−kの絶対位置を、位置推定結果として出力する(ステップS511)。
一方、領域判定値の平均値が所定の閾値以上である場合(ステップS510においてNo)、トポロジ矛盾判定部59は、位置推定対象ノードの推定位置においてトポロジ矛盾が発生しており、位置推定対象ノードの推定位置の精度が低いと判断する。この場合、位置推定装置5は、ステップS505に戻り、位置推定対象ノードの位置推定をやり直す。
以上説明したように、位置推定装置5は、無線ノードの仮の自己位置を生成する暫定座標系において対称面を設定し、対称面を基準として無線ノードと面対称の位置関係にある仮想ノードを生成する。位置推定装置5は、仮想ノードの隣接ノード情報を、仮想ノードに1対1で対応する無線ノードの隣接ノード情報を生成する。位置推定装置5は、無線ノードの隣接ノード情報と、仮想ノードの隣接ノード情報とを用いて無線ノードの仮の自己位置を更新することにより、無線ノードの相対位置を推定する。
これにより、位置推定装置5は、高さ方向のサイズが底面方向のサイズよりも小さい直方体空間に無線ノードが配置された場合であっても、高さ方向のホップ数を仮想的に増加させることができるため、無線ノードの相対位置を高精度で推定することができる。
[4.シミュレーション評価]
本実施の形態で説明した位置推定方法を用いて直方体空間に配置された無線ノードの位置推定処理をシミュレーションし、そのシミュレーション結果を評価した。
シミュレーション条件は、以下の通りである。仮想的な3次元のフィールドとして、正方形の底面を有する直方体空間を想定し、無線ノードを配置した。直方体空間における高さを、直方体空間の底面の一辺のサイズの0.1倍〜0.5倍に変化させた。無線ノードの数を、100個〜300個に変化させた。無線ノードの通信半径を、直方体空間の底面の一辺のサイズの0.3倍に設定した。無線ノード及び仮想ノードを含む位置推定対象ノードの各々についての仮の自己位置の更新回数を800回に設定した。
そして、位置推定誤差を、各無線ノードの推定位置と、各無線ノードの真位置とのユークリッド距離の平均として算出した。つまり、位置推定誤差は、下記の式(8)により得られる。
式(8)において、Eaveは、位置推定誤差である。Nは、無線ノードの数である。Wiは、無線ノードの各々の真位置である。wiは、無線ノードの各々の推定位置である。
図15は、シミュレーションにより得られた、位置推定誤差と無線ノードの数との関係を示すグラフである。図15に示すように、ノード数が増加するにつれて、位置推定誤差Eaveが低下する。そして、本実施の形態に係る位置推定方法による位置推定誤差は、全てのノード数において、従来の位置推定方法による位置推定誤差よりも小さい。
本実施の形態に係る位置推定方法を用いた場合におけるノード数150の位置推定誤差Eaveが、従来の位置推定方法を用いた場合におけるノード数300の位置推定誤差Eaveとほぼ同じと値となっている。このことから、無線ノードに加えて仮想ノードを使用して無線ノードの位置を推定することにより、無線通信空間10に配置された無線ノードの倍の数の無線ノードを用いて位置推定を行った場合と同等の精度が得られることを確認できた。
図16は、シミュレーションにより得られた、位置推定誤差と無線通信空間10の高さとの関係を示すグラフである。図16に示すように、本実施の形態に係る位置推定方法による位置推定誤差は、高さを変化させた場合においても、従来の位置推定方法による位置推定誤差によりも低下していることが分かる。
図17は、シミュレーションにより得られたノード間ホップ数の分布を示すグラフである。図17に示すように、本実施の形態に係る位置推定方法におけるホップ数は、従来の位置推定方法におけるホップ数よりも全ホップ数にわたって増加している。図17に示すグラフは、従来の位置推定方法を用いる場合に比べて、本実施の形態に係る位置推定方法を用いた場合において、多様なマルチホップノードを無線ノードの位置推定に使用できることを示している。この結果、図15及び図16に示すように、本実施の形態に係る位置推定方法は、無線ノードの位置推定精度を改善することができたと考えられる。
[変形例]
なお、上記実施の形態では、無線ノードS1〜S−kが施設の屋内に配置される場合を例に説明したが、これに限られない。無線ノードS1〜S−kが屋外に配置されていてもよい。
また、上記実施の形態では、無線通信空間10における床面10Aを面対称の対称面に設定する例を説明したが、これに限られない。対称面は、水平面に平行でなくてもよく、水平面に垂直な面であってもよい。対称面は、4つのアンカーノードのうち少なくとも1つを含む面であればよい。
また、上記実施の形態では、アンカーノード以外の無線ノードが、無線通信空間10における床面10Aに配置される例を説明した。しかし、アンカーノード以外の無線ノードが、床面10Aに配置されていればよい。
また、上記実施の形態では、無線通信空間10に対応する仮想通信空間20に仮想ノードが配置される例を説明した。しかし、位置推定装置5は、複数の仮想通信空間を生成し、仮想通信空間の各々に仮想ノードを配置してもよい。
例えば、位置推定装置5は、図9に示す仮想通信空間20において、床面10Aと平行であり、かつ、仮想ノードV−6,V−8を含む面を対称面として、仮想通信空間20と面対称の関係にある別の仮想通信空間を生成してもよい。この場合、位置推定装置5は、仮想通信空間20と、別の仮想通信空間との各々に、仮想ノードを配置する。別の仮想通信空間に配置され仮想ノードは、仮想通信空間20に配置される仮想ノードと面対称の関係にある。別の仮想通信空間に仮想ノードを配置することにより、位置推定に用いられるノードの数を、無線通信空間10に配置された無線ノードの数の約3倍にすることができる。この結果、無線通信空間10に配置された無線ノードの位置をさらに高精度に推定することができる。
また、位置推定装置は、床面10Aに対して垂直であり、かつ、無線ノードS−1を含む面を対称面として、無線通信空間の面対称の関係にある別の仮想通信空間を生成してもよい。
また、上記実施の形態において、無線ノード及びシンク4が近距離無線通信を行う例を説明したが、これに限られない。無線ノードは、2つ以上の通信規格に対応していてもよい。例えば、無線ノードは、BLE又はIEEE802.15.4を用いて、他の無線ノードと広告パケットの送受信を行う。そして、無線ノードは、BLEや、IEEE802.15.4などよりも無線通信距離の長い通信規格(例えば、無線LAN(Local Area Network)や、携帯電話通信網など)に準拠した無線通信を用いて、隣接ノード情報を含む通知パケットDTGをシンク4に送信してもよい。無線ノードが通知パケットDTGを送信する際に、無線LANが用いられる場合、シンク4は、アクセスポイントに相当し、携帯電話通信網が用いられる場合、シンク4は、基地局に相当する。ここに挙げた通信規格は一例であり、無線ノードが使用する無線通信の通信規格は特に限定されない。また、図1では、シンク4が1つである場合を示しているが、無線ネットワーク100は、2つ以上のシンク4を備えていてもよい。
また、上記実施の形態に係る位置推定装置5の各機能ブロック(各機能部)の処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施の形態に係る位置推定装置5において、各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。例えば、位置推定装置5の構成を、図19に示すような構成とすることにより、上記実施の形態に係る位置推定装置5の各機能ブロック(各機能部)の処理の一部または全部が実行されるものであってもよい。
また、上記実施の形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。
また、上記実施の形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。