本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線ネットワークの構成を示す概略図である。図1を参照して、この発明の実施の形態による無線ネットワーク10は、センサーノード1〜7と、シンク8とを備える。
センサーノード1〜7のうちの3個のセンサーノードは、アンカーノードである。センサーノード1〜7は、無線通信空間に配置される。センサーノード1〜7の各々は、温度、湿度、および回転速度等のセンサー値を検出し、その検出したセンサー値を無線通信によってシンク8へ送信する。
また、センサーノード1〜7の各々は、自己の識別情報(例えば、アドレス)を含む広告パケットを生成し、その生成した広告パケットをブロードキャストする。そして、センサーノード1〜7の各々は、他のセンサーノードから広告パケットを受信すると、その受信した広告パケットに含まれる識別情報を検出する。この場合、センサーノード1〜7の各々は、複数の広告パケットを受信した場合、複数の広告パケットから複数の識別情報を検出する。
そうすると、センサーノード1〜7の各々は、その検出した少なくとも1つの識別情報からなる識別情報リストを作成し、その作成した識別情報リストと自己の識別情報とを対応付けた隣接センサーノード情報を生成し、その生成した隣接センサーノード情報を含むパケットPKT_DTGを生成してシンク8へ送信する。この隣接センサーノード情報は、各センサーノード1〜7が他のセンサーノードから直接受信した広告パケットから検出した識別情報を含むので、各センサーノード1〜7から1ホップの位置に存在するセンサーノードの情報を示す。
なお、図1においては、センサーノード1〜7の全てがパケットPKT_DTGをシンク8へ直接送信するように図示しているが、パケットPKT_DTGがセンサーノード1〜7からシンク8へ直接送信できない場合、センサーノード1〜7からのパケットPKT_DTGをマルチホップでシンク8へ送信する。
シンク8は、センサーノード1〜7の各々からパケットPKT_DTGを受信し、その受信したパケットPKT_DTGから隣接センサーノード情報を検出し、その検出した隣接センサーノード情報を位置推定装置9へ送信する。
位置推定装置9は、例えば、クラウド上に設置される。そして、位置推定装置9は、シンク8から隣接センサーノード情報を受信する。これによって、位置推定装置9は、センサーノード1〜7の全てから隣接センサーノード情報を取得する。位置推定装置9は、隣接センサーノード情報を取得すると、その取得した隣接センサーノード情報に基づいて、センサーノード1〜7の配置関係を示すトポロジーを作成する。その後、位置推定装置9は、その作成したトポロジーに基づいて、後述する方法によってセンサーノード1〜7の位置を推定する。
図2は、図1に示すセンサーノード1の構成を示す概略図である。図2を参照して、センサーノード1は、アンテナ11と、送受信部12と、制御部13とを含む。なお、図2においては、センサーノード1が搭載するセンサーを図示していないが、センサーノード1は、センサーを搭載している。
送受信部12は、アンテナ11を介して広告パケットを受信し、その受信した広告パケットを制御部13へ出力する。
また、送受信部12は、センサーノード1の識別情報を含む広告パケットを制御部13から受けると、その受けた広告パケットをアンテナ11を介してブロードキャストする。
さらに、送受信部12は、隣接センサーノード情報を含むパケットPKT_DTGを制御部13から受けると、その受けたパケットPKT_DTGをアンテナ11を介してシンク8へ送信する。
制御部13は、センサーノード1の識別情報Address1を予め保持している。制御部13は、識別情報Address1を含む広告パケットを生成し、その生成した広告パケットを送受信部12へ出力する。
制御部13は、送受信部12から広告パケットを受けると、その受けた広告パケットから識別情報を検出する。例えば、センサーノード1がセンサーノード2,4,5から広告パケットを受信した場合、制御部13は、3個の広告パケットからそれぞれ識別情報Address2,Address4,Address5を検出する。そして、制御部13は、識別情報Address1と識別情報Address2,Address4,Address5とを対応付けた隣接センサーノード情報を生成し、その生成した隣接センサーノード情報を含むパケットPKT_DTGを生成して送受信部12へ出力する。
なお、図1に示すセンサーノード2〜7の各々も、図2に示すセンサーノード1と同じ構成からなる。
図3は、図1に示すシンク8の構成を示す概略図である。図3を参照して、シンク8は、アンテナ81と、送受信部82と、制御部83とを含む。
送受信部82は、アンテナ81を介してパケットPKT_DTGを受信し、その受信したパケットPKT_DTGを制御部83へ出力する。
また、送受信部82は、制御部83から隣接センサーノード情報を受けると、その受けた隣接センサーノード情報をアンテナ81およびインターネットを介して位置推定装置9へ送信する。
制御部83は、送受信部82からパケットPKT_DTGを受けると、その受けたパケットPKT_DTGから隣接センサーノード情報を検出し、その検出した隣接センサーノード情報を送受信部82へ出力する。
図4は、図1に示す位置推定装置9の構成を示す概略図である。図4を参照して、位置推定装置9は、受信部91と、取得手段92と、トポロジー生成手段93と、位置更新手段94と、位置情報生成手段95と、変換手段96と、判定手段97と、演算手段98と、仮想トポロジー生成手段99とを含む。
受信部91は、シンク8からインターネットを介して隣接センサーノード情報を受信し、その受信した隣接センサーノード情報を取得手段92へ出力する。
取得手段92は、受信部91から隣接センサーノード情報を受ける。そして、取得手段92は、全ての隣接センサーノード情報を受信部91から受けると、その受けた全ての隣接センサーノード情報をトポロジー生成手段93および位置情報生成手段95へ出力する。
トポロジー生成手段93は、隣接センサーノード情報を取得手段92から受ける。そして、トポロジー生成手段93は、隣接センサーノード情報に基づいて、無線ネットワーク10におけるセンサーノード1〜7の配置関係を示すトポロジーを生成する。そうすると、トポロジー生成手段93は、その生成したトポロジーを位置更新手段94へ出力する。
位置更新手段94は、トポロジー生成手段93からセンサーノード1〜7のトポロジーを受け、位置情報生成手段95からセンサーノード1〜7の仮の自己位置情報を受ける。そして、位置更新手段94は、センサーノード1〜7のトポロジーおよび仮の自己位置情報に基づいて、後述する方法によってセンサーノード1〜7の位置を推定する。
位置更新手段94は、センサーノード1〜7の位置推定を予め設定された設定回数行うと、その推定したセンサーノード1〜7の位置を変換手段96へ出力する。
位置更新手段94は、センサーノード1〜7の推定位置を1回目に変換手段96へ出力した後、後述する距離D_calを演算手段98から受け、仮想トポロジーを仮想トポロジー生成手段99から受けると、その受けた距離D_calおよび仮想トポロジーを用いて後述する方法によってセンサーノード1〜7の位置推定を予め設定された設定回数行う。
位置情報生成手段95は、取得手段92から隣接センサーノード情報を受け、その受けた隣接センサーノード情報に基づいて、無線ネットワーク10を構成するセンサーノード1〜7を認識する。
そして、位置情報生成手段95は、その認識したセンサーノード1〜7の仮の自己位置を示す仮の自己位置情報をランダムに生成する。この場合、位置情報生成手段95は、センサーノードi(i=1〜7)の仮の自己位置のt(tは正の整数)回目の更新時に仮の自己位置wi(t)をランダムに生成する。仮の自己位置wi(t)は、2次元の位置情報からなる。
また、位置情報生成手段95は、後述するトポロジー矛盾が有ることを示す信号TP_incosを判定手段97から受けたとき、または仮想トポロジーを生成したことを示す信号VTPを仮想トポロジー生成手段99から受けたとき、センサーノード1〜7の仮の自己位置情報をランダムに生成する。
そうすると、位置情報生成手段95は、その生成したセンサーノード1〜7の仮の自己位置情報を位置更新手段94へ出力する。
変換手段96は、アンカーノードの絶対位置を予め保持している。変換手段96は、センサーノード1〜7の推定された推定位置を位置更新手段94から受け、その受けたセンサーノード1〜7の推定位置とアンカーノードの絶対位置とに基づいて、後述する方法によってセンサーノード1〜7の推定位置を絶対位置に変換する。そして、変換手段96は、その変換したセンサーノード1〜7の絶対位置を判定手段97へ出力する。
判定手段97は、センサーノード1〜7の絶対位置を変換手段96から受け、その受けたセンサーノード1〜7の絶対位置に基づいて、後述する方法によってトポロジー矛盾の有無を判定する。
そして、判定手段97は、トポロジー矛盾が有ると判定したとき、信号TP_incosを位置情報生成手段95へ出力する。
一方、判定手段97は、トポロジー矛盾が無いと判定したとき、トポロジー矛盾が無いことを示す信号TP_cosおよびセンサーノード1〜7の絶対位置を演算手段98および仮想トポロジー生成手段99へ出力する。
演算手段98は、信号TP_cosおよびセンサーノード1〜7の絶対位置を判定手段97から受けると、センサーノード1〜7の絶対位置に基づいて、センサーノード1〜7の各々を位置推定の対象とした対象センサーノードからn(nは1≦n≦最大ホップ数)ホップの位置までの距離D_cal、対象センサーノードからnホップの位置までの距離D_calの平均M、および対象センサーノードからnホップの位置までの距離D_calの期待値Eを演算する。
そして、演算手段98は、その演算した距離D_calを位置更新手段94へ出力し、その演算した平均Mおよび期待値Eを仮想トポロジー生成手段99へ出力する。
仮想トポロジー生成手段99は、判定手段97から信号TP_cosおよびセンサーノード1〜7の絶対位置を受け、演算手段98から平均Mおよび期待値Eを受ける。そして、仮想トポロジー生成手段98は、平均Mおよび期待値Eに基づいて後述する方法によって無線通信のカバレッジを求め、その求めた無線通信のカバレッジおよびセンサーノード1〜7の絶対位置に基づいて、後述する方法によって仮想トポロジーを生成する。そして、仮想トポロジー生成手段99は、その生成した仮想トポロジーを位置更新手段94へ出力する。
[トポロジーの生成]
トポロジー生成手段93におけるトポロジーの生成方法について説明する。
(1)センサーノードiの隣接センサーノード情報に含まれるセンサーノードをセンサーノードiの1次近傍センサーノードj(jは、i≠jを満たし、1〜7)とする。
(2)1次近傍センサーノードjの隣接センサーノード情報に含まれるセンサーノードで、センサーノードiの隣接センサーノード情報に含まれないセンサーノードを、センサーノードjを中継センサーノードとするセンサーノードiの2次近傍センサーノードとする。
(3)同様に、n次近傍センサーノードxの隣接センサーノード情報に含まれて、(n−1)次までの近傍センサーノード群の隣接センサーノード情報に含まれないセンサーノードを、センサーノードxを中継センサーノードとするセンサーノードiの(n+1)次近傍センサーノードとする。
(4)上記(1)〜(3)を再帰的に繰り返し、センサーノードiの近傍トポロジーを拡大し、ネットワーク全体を通してセンサーノードiの多次近傍センサーノードを設定する。
トポロジー生成手段93は、上記(1)〜(4)をセンサーノード1〜7の全体について実行し、センサーノード1〜7のトポロジーを生成する。
[位置推定方法]
位置更新手段94における位置推定方法について説明する。
トポロジーの生成において説明したように、トポロジーは、センサーノードiからn次近傍センサーノードまでを考慮して生成されるので、位置更新手段94は、センサーノード1〜7のトポロジーを用いてセンサーノードiの仮の自己位置wi(t)を更新する場合、センサーノードiからnホップ目の位置に存在するn次近傍センサーノード以下のセンサーノード(=多次近傍センサーノード)を認識できる。
多次近傍センサーノードの情報は、ホップ数に応じてセンサーノード間の距離が増加するように構成されている。すなわち、センサーノードiの位置更新のために選択されるセンサーノードは、センサーノードiからn次近傍センサーノード以下であり、かつ、センサーノードiからの(n−1)次近傍センサーノードのいずれのセンサーノードよりもセンサーノードiから遠方に位置する条件を満たす。
従って、1ホップのセンサーノード間の距離を一定距離dとすると、センサーノードiからn次近傍センサーノードまでの距離は、一定距離d×ホップn=ndで表される。
そして、この発明の実施の形態においては、位置推定の対象となるセンサーノードiの仮の自己位置を更新する場合、センサーノードiの仮の自己位置wi(t)とn次近傍センサーノードの仮の自己位置wn(t)とを用いて計算された距離|wi(t)−wn(t)|がセンサーノードiからn次近傍センサーノードまでのホップ数からなる距離ndに近づくようにセンサーノードiの仮の自己位置wi(t)を修正する。
この場合、n次近傍センサーノードの仮の自己位置wn(t)を用いてセンサーノードiの仮の自己位置wi(t)を修正するときのn次修正ベクトルは、次式によって求められる。
そして、この発明の実施の形態においては、位置修正の初期段階においては、広い範囲の近傍センサーノードを用いて大域的にトポロジーを形成し、修正段階の進行に伴い、位置修正に使用する近傍センサーノードのホップ数を減少させて、局所的かつ詳細なトポロジーを形成し、収束させる。
従って、次式(2)に従ってセンサーノードiの仮の自己位置wi(t)を更新する。
式(2)において、τnは、ホップ数nにおける更新終了の閾値を示し、τn−1は、ホップ数nにおける更新開始の閾値を示す。また、式(2)において、αi(t)は、t回目の修正におけるセンサーノードiの学習関数であり、次式(3)によって決定される。
式(3)において、ηは、正の減衰定数である。また、学習関数αi(t)の初期値αi(0)は、1である。
最大ホップ数から3ホップまでは、更新回数を均等とし、2ホップは、局所的な位置推定を行うため、他のホップ数における更新回数の2倍の割合として、最大ホップ数から降順に更新開始および更新終了の閾値を設定する。
そして、位置更新手段94は、式(2)の右辺の最上段の修正ベクトルから最下段の修正ベクトルまでを順次適用して式(2)に従ってセンサーノードiの仮の自己位置wi(t)を更新する。
式(2)の右辺の最上段の修正ベクトル(Vi {1}(t)+Vi {n}(t))は、1次修正ベクトルとn次修正ベクトルとの和からなり、上から2番目の修正ベクトル(Vi {1}(t)+Vi {n−1}(t))は、1次修正ベクトルと(n−1)次修正ベクトルとの和からなり、以下同様にして、下から2番目の修正ベクトル(Vi {1}(t)+Vi {3}(t))は、1次修正ベクトルと3次修正ベクトルとの和からなり、最下段の修正ベクトル(Vi {1}(t)+Vi {2}(t))は、1次修正ベクトルと2次修正ベクトルとの和からなる。
従って、位置更新手段94は、センサーノード1の1次近傍センサーノードとn次近傍センサーノードとを用いてセンサーノードiの仮の自己位置wi(t)を更新し、その後、センサーノード1の1次近傍センサーノードと(n−1)次近傍センサーノードとを用いてセンサーノードiの仮の自己位置wi(t)を更新し、以下、同様にして、センサーノード1の1次近傍センサーノードと3次近傍センサーノードとを用いてセンサーノードiの仮の自己位置wi(t)を更新し、最終的に、センサーノード1の1次近傍センサーノードと2次近傍センサーノードとを用いてセンサーノードiの仮の自己位置wi(t)を更新する。
これによって、センサーノードiの仮の自己位置wi(t)を大局的から局所的に更新でき、センサーノードiの仮の自己位置wi(t)を一定の位置に収束させることができる。
修正ベクトル(Vi {1}(t)+Vi {n}(t))、(Vi {1}(t)+Vi {n−1}(t))、・・・、(Vi {1}(t)+Vi {3}(t))を用いた仮の自己位置wi(t)の更新回数は、相互に均等であり、修正ベクトル(Vi {1}(t)+Vi {2}(t))を用いた仮の自己位置wi(t)の更新回数は、修正ベクトル(Vi {1}(t)+Vi {n}(t))、(Vi {1}(t)+Vi {n−1}(t))、・・・、(Vi {1}(t)+Vi {3}(t))を用いた仮の自己位置wi(t)の更新回数の2倍である。
従って、10次修正ベクトル(n=10)までを用いてセンサーノード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))を用いた更新回数を2回とすれば、修正ベクトル(Vi {1}(t)+Vi {2}(t))を用いた更新回数は、4回である。その結果、全ての修正ベクトルを用いた更新回数は、20回となる。
更に、修正ベクトル(Vi {1}(t)+Vi {10}(t))、(Vi {1}(t)+Vi {9}(t))、・・・、(Vi {1}(t)+Vi {3}(t))を用いた更新回数を3回とすれば、修正ベクトル(Vi {1}(t)+Vi {2}(t))を用いた更新回数は、6回である。その結果、全ての修正ベクトルを用いた更新回数は、30回となる。
従って、修正ベクトル(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回となる。
従って、式(2)を用いた仮の自己位置wi(t)の更新回数は、nを決定し、その後、pを決定することにより、決定される。nを決定することは、センサーノードiからどの程度のホップ数の位置に存在する近傍センサーノードの仮の自己位置を仮の自己位置wi(t)の更新に用いるかを決定することに相当する。また、pを決定することは、仮の自己位置wi(t)を大局的に更新する回数を決定することに相当する。
[トポロジー矛盾の判定]
(I)距離判定
図5は、トポロジー矛盾を示す概念図である。図5を参照して、センサーノードiは、仮の自己位置wi(t)に存在する。そして、センサーノードiから距離d1の位置に1次近傍センサーノードが存在し、センサーノードiから距離d2の位置に2次近傍センサーノードが存在する。
その結果、センサーノードiの仮の自己位置wi(t)は、1次近傍センサーノードよりも2次近傍センサーノードに近い。これは、2次近傍センサーノードがセンサーノードiから1次近傍センサーノードよりも遠い位置に存在すると言う本来のトポロジーに明らかに矛盾する。
従って、位置推定の対象であるセンサーノードiの仮の自己位置wi(t)が1次近傍センサーノードよりも2次近傍センサーノードに近いことをトポロジー矛盾と言う。
そして、位置推定の対象であるセンサーノードiの仮の自己位置wi(t)が1次近傍センサーノードよりも2次近傍センサーノードに近いか否かの判定を複数の1次近傍センサーノードと2次近傍センサーノードで実施し、次式を満たさない場合、センサーノードiの推定位置は、トポロジー矛盾有りと判定する。
式(4)において、Ii {2}は、センサーノードiにおいてトポロジー矛盾と判定した2次近傍センサーノードの個数を示し、Ni {2}は、トポロジー矛盾の判定に用いた2次近傍センサーノードの個数を示し、λは、トロポジー矛盾の閾値である。
上記の判定は、距離を用いて行われるので、距離判定と言う。
(II)領域判定
図6は、領域判定を説明するための概念図である。
図5に示すように、トポロジー矛盾有りと判定される場合、トポロジーの折れ曲がりが発生する。そして、このトポロジーの折れ曲がりは、センサーノードiから1次近傍センサーノードまでの距離と、センサーノードiから2次近傍センサーノードまでの距離とを用いた判定(上述の距離判定)によって検知できない場合がある。
図6の(a)に示すように、センサーノードi、センサーノードiの1次近傍センサーノードj、およびセンサーノードiの2次近傍センサーノードであり、かつ、1次近傍センサーノードjの1次近傍センサーノードであるセンサーノードlの推定位置をそれぞれwi,wj,wlとし、センサーノードlの真の位置をWlとすると、wlは、折れ曲がりトポロジーの要因となる。
この場合、wi,wjを基準点とするwlのトポロジー矛盾判定は、wlのトポロジー矛盾を検知できる範囲|wl−wi|≦|wj−wi|の外にある(=トポロジー矛盾無しの条件を満たす)ので、wlによる折れ曲がりを検知できない。すなわち、上述した距離判定によるトポロジー矛盾判定は、折れ曲がりトポロジーを十分に検知可能とする領域をカバーできていない。
そこで、次のように、トポロジー矛盾判定の適応領域を拡大する。
図6の(b)を参照して、基準点wi,wjにおいて、線分L1=wj−wiの垂直2等分線L1Hを用いてwlがwi,wjのいずれかに近い領域に空間を2分割する。
この場合、垂直2等分線L1Hの左側の領域(斜線を施した領域)は、wlがwiに近い領域であり、垂直2等分線L1Hの右側の領域は、wlがwjに近い領域である。
センサーノードlは、センサーノードiの2次近傍センサーノードであるので、wlは、wjに近い領域内に位置しなければならない。
従って、wlがwiに近い領域(斜線を施した領域)に位置する場合(|wl―wi|≦|wl―wj|)、トポロジー矛盾有りと判定する。
更に、折れ曲がりによるトポロジー矛盾の検知領域を拡大するために、図6の(c)に示すように、センサーノードjに加えてセンサーノードiとセンサーノードlの共通の1次近傍センサーノードkを基準点として用いる。そして、基準点wi,wkにおいて、線分L2=wk−wiの垂直2等分線L2Hを用いてwlがwi,wkのいずれかに近い領域に空間を2分割する。
この場合、垂直2等分線L2Hの左側の領域(斜線を施した領域)は、wlがwiに近い領域であり、垂直2等分線L2Hの右側の領域は、wlがwkに近い領域である。
センサーノードlは、センサーノードiの2次近傍センサーノードであるので、wlは、wkに近い領域内に位置しなければならない。
従って、wlがwiに近い領域(斜線を施した領域)に位置する場合(|wl―wi|≦|wl―wk|)、トポロジー矛盾有りと判定する。
図6の(c)に示す領域判定は、共通の1次近傍センサーノードの組み合わせを複数回変えて実施される。そして、複数回実施した結果において、式(5)を満たさない場合、トポロジー矛盾有りと判定する。
式(5)において、Aは、共通1次近傍群を用いた領域判定を行った回数を示し、aは、トポロジー矛盾の発生回数を示し、βは、閾値である。
図6の(b),(c)に示す2つの領域判定を順次適用することにより、折れ曲がりによるトポロジー矛盾の検知領域を拡大でき、折れ曲がりによるトポロジー矛盾を効果的に検知できる。
上述した距離判定および領域判定の少なくとも1つによってトポロジー矛盾有りと判定された場合、センサーノードiの学習関数αi(t)を初期値(=1)に戻し、位置推定処理を再度実行する。
[仮想トポロジーの生成]
上述したトポロジー矛盾の判定において、トポロジー矛盾無しと判定された場合、推定位置は、高い精度で推定された位置となる。すなわち、各センサーノードの推定位置から得られるセンサーノード間の距離も、精度が高いと仮定できる。
そこで、センサーノード間の距離を用いて次のようにネットワークのトポロジーを再設定する。
(I)センサーノード間の距離の変更
センサーノード間の距離をホップ数から推定位置に基づいて得られるセンサーノード間の距離に変更する。すなわち、高い精度を有するセンサーノード間の距離を用いることによって位置推定の精度を向上させる。
(II)仮想センサーノードの追加
センサーノードの推定位置に基づいて、各センサーノードの隣接(1ホップ)センサーノードとの間の距離の平均M(1)を算出する。
無線通信のカバレッジをRとすると、カバレッジR内にセンサーノードが一様に分布する場合、カバレッジRを有するセンサーノードの近傍センサーノードまでの距離の期待値d{n}は、次式によって決定される。
式(6)において、xは、(n−1)R≦x≦nRを満たす。
カバレッジRを有するセンサーノードと、そのセンサーノードから1ホップの位置に存在するセンサーノードとの間の距離の期待値d{1}と平均M{1}とからカバレッジRを求める。この求めたカバレッジRを推定カバレッジRとする。
そして、任意の仮想センサーノードを既に作成されたトポロジー内に配置し、推定カバレッジRを用いて仮想センサーノードの隣接センサーノード情報の作成と、実際のセンサーノードの隣接センサーノード情報の更新を行い、仮想トポロジーを生成する。
図7は、推定カバレッジの概念図である。また、図8は、ホップ数とセンサーノード間の距離の期待値との関係を示す図である。
図8におけるセンサーノード間の距離の期待値d{n}は、式(6)を用いて計算された期待値である。
図7を参照して、センサーノードiから(n−1)ホップまでのカバレッジは、(n−1)Rによって表され、センサーノードiからnホップまでのカバレッジは、nRによって表される。そして、カバレッジ(n−1)R,nRは、同心円状に配置される。
その結果、センサーノードiからnホップのセンサーノードは、カバレッジnRからカバレッジ(n−1)Rを除いた領域内に位置する。
各センサーノードの推定位置に基づいて、1ホップの位置に存在するセンサーノードまでの距離の平均M{1}、2ホップの位置に存在するセンサーノードまでの距離の平均M{2}、・・・、nホップの位置に存在するセンサーノードまでの距離の平均M{n}を計算することができる。
図8に示す期待値d{n}によれば、1ホップの位置に存在するセンサーノードまでの距離の期待値d{1}は、d{1}=0.67Rによって表され、2ホップの位置に存在するセンサーノードまでの距離の期待値d{2}は、d{2}=1.56Rによって表され、3ホップの位置に存在するセンサーノードまでの距離の期待値d{3}は、d{3}=2.53Rによって表され、4ホップの位置に存在するセンサーノードまでの距離の期待値d{4}は、d{4}=3.52Rによって表され、5ホップの位置に存在するセンサーノードまでの距離の期待値d{5}は、d{5}=4.52Rによって表される。
従って、計算した平均M{1}をd{1}=0.67Rの期待値d{1}に代入することにより、1ホップの位置におけるカバレッジR1を算出できる。また、計算した平均M{2}をd{2}=1.56Rの期待値d{2}に代入することにより、2ホップの位置におけるカバレッジR2を算出できる。以下、同様にして、3ホップの位置におけるカバレッジR3、4ホップの位置におけるカバレッジR4および5ホップの位置におけるカバレッジR5を算出できる。
図9は、カバレッジRを用いて仮想センサーノードの隣接センサーノード情報の作成および実センサーノードの隣接センサーノード情報の更新を行う方法を説明するための図である。
図9を参照して、実センサーノードであるセンサーノード1〜7がそれぞれ推定位置w1〜w7に配置されている。
そして、4個の仮想センサーノードV1〜V4をそれぞれ位置wV1〜wV4に配置する。
センサーノード1から1ホップ、2ホップ、3ホップ、4ホップおよび5ホップのカバレッジR1〜R5は、センサーノード1を中心として同心円状に配置される。
そして、領域REG1〜REG5は、それぞれ、センサーノード1から1ホップのセンサーノード、2ホップのセンサーノード、3ホップのセンサーノード、4ホップのセンサーノード、および5ホップのセンサーノードが位置する領域である。
センサーノード1を中心として同心円状のカバレッジR1〜R5を配置すると、センサーノード2,7,3は、それぞれ、センサーノード1から1ホップ、2ホップおよび3ホップの位置に配置され、センサーノード4,5は、センサーノード1から4ホップの位置に配置され、センサーノード6は、センサーノード1から5ホップの位置に配置されていることが分かる。
また、仮想センサーノードV1,V2は、それぞれ、センサーノード1から3ホップおよび4ホップの位置に配置され、仮想センサーノードV3,V4は、センサーノード1から5ホップの位置に配置されていることが分かる。
そうすると、実センサーノード1〜7および仮想センサーノードV1〜V4が配置された状態で、仮想センサーノードV1〜V4の隣接センサーノード情報を作成し、実センサーノード1〜7の隣接センサーノード情報に仮想センサーノードV1〜V4を追加して実センサーノード1〜7の隣接センサーノード情報を更新する。
そして、仮想センサーノードV1〜V4の隣接センサーノード情報と、実センサーノード1〜7の更新された隣接センサーノード情報とを用いて仮想トポロジーを生成する。
演算手段98は、センサーノード1〜7の推定された推定位置を用いて各センサーノードからnホップの位置に存在するセンサーノードまでの距離の平均M{n}および期待値d{n}を演算し、その演算した平均M{n}および期待値d{n}を仮想トポロジー生成手段99へ出力する。
仮想トポロジー生成手段99は、平均M{n}および期待値d{n}を演算手段98から受け、その受けた平均M{n}および期待値d{n}を用いてカバレッジRを求め、その求めたカバレッジRを用いて、上述した方法によって、仮想トポロジーを生成する。そして、仮想トポロジー生成手段99は、その生成した仮想トポロジーを位置更新手段94へ出力する。
なお、追加する仮想センサーノードの個数は、任意であり、仮想センサーノードの配置位置も任意である。
[絶対位置への変換]
上述した位置推定処理によって推定される位置は、相対位置である。この相対位置をアンカーノードの推定位置と絶対位置とを用いて絶対位置へ変換する。
アンカーノードの真位置(=絶対位置)をWA=(XA,YA)とし、推定位置をwA=(xA,yA)とすると、真位置WA=(XA,YA)は、推定位置wA=(xA,yA)を用いて次式のように表される。
3つのアンカーノードから構成される連立方程式(7)から6つの係数a,b,c,d,tx,tyを得ることにより、全てのセンサーノードの推定位置wi=(xi,yi)は、次式によって絶対位置Wi=(Xi,Yi)へ変換される。
変換手段96は、式(7)から係数a,b,c,d,tx,tyを決定し、その決定した係数a,b,c,d,tx,tyを式(8)に代入してセンサーノード1〜7の全ての推定位置を絶対位置に変換する。
位置推定装置9におけるセンサーノード1〜7の位置の推定方法について説明する。
図10は、図1に示す位置推定装置9におけるセンサーノード1〜7の位置の推定方法を説明するためのフローチャートである。
図10を参照して、位置の推定が開始されると、位置推定装置9の取得手段92は、上述した方法によって全てのセンサーノード1〜7の隣接センサーノード情報を取得する(ステップS1)。
そして、取得手段92は、その取得した隣接センサーノード情報をトポロジー生成手段93および位置情報生成手段95へ出力する。
トポロジー生成手段93は、隣接センサーノード情報を取得手段92から受け、その受けた隣接センサーノード情報に基づいて、上述した方法によってネットワーク(無線ネットワーク10)のトポロジーを生成し(ステップS2)、その生成したトポロジーを位置更新手段94へ出力する。
位置更新手段94は、トポロジーをトポロジー生成手段93から受ける。そして、位置更新手段94は、トポロジーにおけるセンサーノード1〜7間の距離をホップ数に設定し、位置の更新回数を設定し、トポロジー試行回数の上限を設定する(ステップS3)。ここで、センサーノード1〜7間の距離をホップ数に設定するとは、センサーノード1〜7間の距離をホップ数によって表すことであり、1ホップ間の距離をdで表し、2ホップ間の距離を2dで表し、以下、同様にしてnホップ間の距離をndで表すことを意味する。また、更新回数は、上述した[位置推定方法]の項目で説明した修正ベクトル(Vi {1}(t)+Vi {n}(t))、(Vi {1}(t)+Vi {n−1}(t))、・・・、(Vi {1}(t)+Vi {3}(t))を用いた仮の自己位置wi(t)の更新回数を設定することを意味する。更に、トポロジー試行回数の上限は、図10に示すフローチャートを用いてセンサーノード1〜7の位置を推定する回数の上限値を意味する。
ステップS3の後、位置情報生成手段95は、隣接センサーノード情報を取得手段92から受け、その受けた隣接センサーノード情報に基づいて、全てのセンサーノード1〜7を認識し、その認識したセンサーノード1〜7の仮の自己位置wi(t)をランダムに生成する(ステップS4)。
位置更新手段94は、位置情報生成手段95から仮の自己位置wi(t)を受け、その受けた仮の自己位置wi(t)および式(1)〜(3)を用いて仮の自己位置wi(t)を更新回数まで更新する(ステップS5)。
そして、位置更新手段94は、その更新したセンサーノードiの位置を変換手段96へ出力し、変換手段96は、センサーノードiの推定位置を位置更新手段94から受ける。
その後、変換手段96は、アンカーノードの真位置と推定位置とを用いて上述した方法によってセンサーノードiの推定位置を絶対位置に変換する(ステップS6)。
そうすると、変換手段96は、センサーノードiの絶対位置を判定手段97へ出力する。
判定手段97は、センサーノードiの絶対位置を変換手段96から受け、その受けたセンサーノードiの絶対位置に基づいて、上述した距離判定を行い、トポロジー矛盾が有るか否かを判定する(ステップS7)。
ステップS7において、トポロジー矛盾が有ると判定されたとき、判定手段97は、信号TP_incosを生成して位置情報生成手段95へ出力し、その後、一連の動作は、ステップS4へ戻り、ステップS7において、トポロジー矛盾が無いと判定されるまで、ステップS4〜ステップS7が繰り返し実行される。
なお、ステップS4へ戻るとき、学習関数αi(t)は、初期値(=1)に戻される。また、ステップS4へ戻るとき、位置情報生成手段95は、信号TP_incosに応じて、センサーノードiの仮の自己位置wi(t)をランダムに生成して位置更新手段94へ出力する。
そして、ステップS7において、トポロジー矛盾が無いと判定されると、判定手段97は、上述した領域判定を行い、トポロジー矛盾が有るか否かを判定する(ステップS8)。
ステップS8において、トポロジー矛盾が有ると判定されたとき、判定手段97は、信号TP_incosを生成して位置情報生成手段95へ出力し、その後、一連の動作は、ステップS4へ戻り、ステップS8において、トポロジー矛盾が無いと判定されるまで、上述したステップS4〜ステップS8が繰り返し実行される。
なお、ステップS8からステップS4へ戻る場合も、学習関数αi(t)は、初期値(=1)に戻される。また、この場合も、位置情報生成手段95は、信号TP_incosに応じて、センサーノードiの仮の自己位置wi(t)をランダムに生成して位置更新手段94へ出力する。
そして、ステップS8において、トポロジー矛盾が無いと判定されると、判定手段97は、試行回数がトポロジー試行回数の上限に等しいか否かを判定する(ステップS9)。
ステップS9において、試行回数がトポロジー試行回数の上限に等しくないと判定されたとき、判定手段97は、信号TP_cosを生成し、その生成した信号TP_cosと、センサーノードiの絶対位置とを演算手段98および仮想トポロジー生成手段99へ出力する。
仮想トポロジー生成手段99は、信号TP_cosおよびセンサーノードiの絶対位置を判定手段97から受ける。そして、仮想トポロジー生成手段99は、信号TP_cosに応じて、後述する方法によって、センサーノードi間の距離を推定位置に基づいて算出した距離に設定し、仮想センサーノードを設定して仮想トポロジーを生成する(ステップS10)。そして、仮想トポロジー生成手段99は、その生成した仮想トポロジーを位置更新手段94へ出力する。
その後、一連の動作は、ステップS4へ戻り、ステップS9において、試行回数がトポロジー試行回数の上限に等しいと判定されるまで、上述したステップS4〜ステップS10が繰り返し実行される。
そして、ステップS9において、試行回数がトポロジー試行回数の上限に等しいと判定されると、センサーノードiの位置推定が終了する。
図11は、図10に示すステップS10の詳細な動作を説明するためのフローチャートである。
図11を参照して、図10のステップS9において、試行回数がトポロジー試行回数の上限に等しくないと判定されると、演算手段98は、信号TP_cosとセンサーノードiの絶対位置とを判定手段97から受ける。そして、演算手段98は、信号TP_cosに応じて、センサーノードiの絶対位置(推定位置)に基づいてセンサーノード間の距離を算出し、その算出したセンサーノード間の距離(センサーノード間演算距離)を位置更新手段94へ出力し、位置更新手段94は、演算手段98から受けたセンサーノード間の距離(センサーノード間演算距離)をセンサーノード間の距離に設定する(ステップS101)。
その後、演算手段98は、センサーノード間の距離の平均および期待値を算出し(ステップS102)、その算出したセンサーノード間の距離の平均および期待値を仮想トポロジー生成手段99へ出力する。
そして、仮想トポロジー生成手段99は、センサーノード間の距離の平均および期待値を演算手段98から受け、その受けたセンサーノード間の距離の平均および期待値を用いて上述した方法によって無線通信のカバレッジを算出する(ステップS103)。
引き続いて、仮想トポロジー生成手段99は、任意の位置に任意の数の仮想センサーノードを配置し、センサーノードiの絶対位置(推定位置)と無線通信のカバレッジとを用いて、上述した方法によって仮想センサーノードの隣接センサーノード情報を作成する(ステップS104)。
そして、仮想トポロジー生成手段99は、センサーノードiの絶対位置(推定位置)、無線通信のカバレッジ、および仮想センサーノードの位置に基づいて実センサーノードiの隣接センサーノード情報に仮想センサーノードを追加して実センサーノードiの隣接センサーノード情報を更新する(ステップS105)。
その後、仮想トポロジー生成手段99は、実センサーノードの更新した隣接センサーノード情報と仮想センサーノードの隣接センサーノード情報とを用いて、トポロジー生成手段93におけるトポロジーの生成方法と同じ方法によって仮想トポロジーを生成する(ステップS106)。
そして、一連の動作は、図10のステップS4へ移行する。
図10に示すフローチャートにおいては、ステップS7においてトポロジー矛盾が有ると判定されたとき、またはステップS8においてトポロジー矛盾が有ると判定されたとき、センサーノードiの仮の自己位置wi(t)が新たにランダムに生成され(ステップS4参照)、その生成されたセンサーノードiの仮の自己位置wi(t)を用いてセンサーノードiの仮の自己位置wi(t)が更新される(ステップS5参照)。
そして、ステップS7およびステップS8の両方において、トポロジー矛盾が無いと判定された場合、仮想センサーノードを追加して仮想トポロジーが生成される(ステップS10参照)。
すなわち、折れ曲がりによるトポロジー矛盾が解消された場合(ステップS8参照)に仮想トポロジーが生成される。
従って、折れ曲がりによるトポロジー矛盾の発生を抑制してセンサーノードiの位置を高精度に推定できる。
また、図10に示すフローチャートにおいては、ステップS10からステップS4へ戻り、その後、ステップS5が実行される場合、ステップS10において、センサーノードiの推定位置を用いて算出した距離にセンサーノード間の距離を設定してセンサーノードiの仮の自己位置wi(t)を更新する(ステップS5参照)。
従って、センサーノードiと1次近傍センサーノード〜n次近傍センサーノードとの間の距離|wi(t)−w1(t)|,|wi(t)−w2(t)|,・・・,|wi(t)−wn(t)|が、それぞれ推定位置を用いて算出された1ホップ間の距離(1ホップ間の演算距離)、2ホップ間の距離(2ホップ間の演算距離)、・・・、nホップ間の距離(nホップ間の演算距離)に近づくようにセンサーノードiの仮の自己位置wi(t)を更新する。
推定位置を用いて算出された距離(演算距離)は信頼性が高いので、推定位置を用いて算出された距離(演算距離)に近づくようにセンサーノードiの仮の自己位置wi(t)を更新することにより、センサーノードiの位置を高精度に推定できる。
更に、図10に示すフローチャートにおいては、ステップS7が実行されなくてもよい。即ち、距離判定によるトポロジー矛盾の有無を判定せず、領域判定によるトポロジー矛盾の有無だけを判定してもよい。
上述したように、領域判定によってトポロジー矛盾の有無を判定することによって、距離判定の対象領域よりも広い領域に判定対象の領域を拡大できるので、トポロジー矛盾の有無を高精度に判定できるからである。
更に、図10に示すフローチャートにおいては、ステップS6が実行されなくてもよい。即ち、図10に示すフローチャートを用いてセンサーノード1〜7の相対位置が推定されてもよい。
センサーノード1〜7の相対位置が推定された場合、その推定された相対位置に基づいて作成されたトポロジーは、センサーノード1〜7の実際のトポロジーと相似になる。
従って、センサーノード1〜7のトポロジー形状が実際のトポロジー形状と根本的に異ならない限り、相対位置を用いて作成されたトポロジーの実用性がある。
図12は、位置推定の誤りの平均とセンサーノードの個数との関係を示す図である。図12において、縦軸は、位置推定の誤りの平均ERRaveを表し、横軸は、センサーノードの個数を表す。
そして、図12は、上述した領域判定によるトポロジー矛盾の有無の判定において、共通1次近傍センサーノードの個数を変えたときの位置推定の誤りの平均とセンサーノードの個数との関係を示す。
図12を参照して、共通1次近傍センサーノードの個数を変えた場合、位置推定の誤りの平均ERRaveは、共通1次近傍センサーノードの個数によって大きな違いがなく、領域判定を行わない場合よりも低くなっている。
従って、この発明の実施の形態においては、領域判定によってトポロジー矛盾の有無を判定する場合、共通1次近傍センサーノードの個数を特に制限することなく、共通1次近傍センサーノードの個数を任意の個数に設定することにした。
図13は、距離のエラーとセンサーノードの個数との関係を示す図である。図13において、縦軸は、距離のエラーを表し、横軸は、センサーノードの個数を表す。
また、黒三角は、実センサーノードであるセンサーノード1〜7の隣接センサーノード情報を用いて作成したトポロジーを用いたときの距離のエラーとセンサーノードの個数との関係を示し、黒丸は、実センサーノードであるセンサーノード1〜7の隣接センサーノード情報と仮想センサーノードの隣接センサーノード情報とを用いて作成した仮想トポロジーを用いたときの距離のエラーとセンサーノードの個数との関係を示す。
図13を参照して、仮想トポロジーを用いたときの距離のエラーは、センサーノードの個数が増加するに従って、実センサーノードだけのトポロジーを用いたときの距離のエラーよりも大きく低下する。
従って、仮想センサーノードを追加して作成した仮想トポロジーを用いてセンサーノード1〜7の位置を推定することによって、距離のエラーを大きく低減できることが分かった。
[シミュレーション評価]
シミュレーション評価について説明する。
図14は、シミュレーションの諸元を示す図である。図15は、本発明の実施の形態による位置推定方法におけるパラメータ諸元を示す図である。図16は、通信回数とセンサーノードの個数との関係を示す図である。図17は、障害物により構成されるネットワークのトポロジーの形状を示す図である。
シミュレーションを繰り返し、経験的に得た本発明の実施の形態による位置推定方法に用いる各パラメータを図15に示す。NLOS混在環境の2次元フィールドを図17に示す。障害物の配置を4通りとし、それぞれの障害物により構成されるネットワークのトポロジーの形状からC型トポロジー、L型トポロジー、H型トポロジー、O型トポロジーと呼ぶ。センサーノード間を結ぶ直線上に障害物がある場合をNLOSとし、センサーノード間の通信を不可とする。その他の場合は、LOSとし、センサーノード間の通信を可能とする。また、位置推定においては、フィールド範囲は未知とする。
図16に、SOLと本発明による位置推定方法のそれぞれの位置推定までの全センサーノードの送信回数を示す。図16を参照して、本発明による位置推定方法は、大幅に送信回数を削減する。SOLは、位置更新を各センサーノードで実施するため、センサーノード間で更新された仮の自己位置を頻繁に交換する。そのため、通信量は、大きくなる。一方、本発明による位置推定方法は、位置更新をクラウド環境の仮想の無線ネットワークで実施するため、各センサーノードは、位置更新時の仮の自己位置の交換は不要であり、仮想の無線ネットワークの構成のために、自身の隣接センサーノード情報をクラウドサーバへ転送するだけである。従って、通信回数を大幅に低減できる。
(相対位置評価と絶対位置評価)
以下の方式での比較評価を行う。DV−hopは、アンカーノードの個数が3個でも、推定可能なRange−Free方式であるため比較対象とする。他の方式は、各センサーノードが少なくとも3個のアンカーノードとLOSである必要があり、評価条件では適用できない。
・本発明による位置推定方法
・SOL
・DV−hop
評価は、相対位置評価と絶対位置評価の2通り行う。相対位置評価は、推定されたセンサーノードの位置により構成されるネットワークの形状(推定ネットワーク形状)とオリジナルネットワークの形状の相似性を次式(11),(12)により評価する。
dijは、推定位置におけるセンサーノードiとセンサーノードjの距離(推定距離)であり、Dijは、オリジナルのネットワークにおけるセンサーノードiとセンサーノードjの距離であり、Nは、位置推定センサーノードの集合であり、|N|は、センサーノードの数(集合Nの要素数)を示す。V[rij]が0に近づけば、推定ネットワーク形状は、オリジナルのネットワーク形状と相似となる。すなわち、V[rij]が0の場合、推定ネットワーク形状は、オリジナルのネットワーク形状にばらつきなく完全に一致する.
絶対位置評価は、推定された各センサーノードの位置と真位置のユークリッド距離の総和の平均である位置推定誤差Erraveを用いて評価する。Erraveは、次式によって求められる。
Wiは、センサーノードiの真位置であり、wiは、推定位置を示す。以上の2つの評価を用いて、センサーノード間の相対位置関係が正しく、かつ、個々のセンサーノード位置が絶対位置として正しく推定されて有用な位置であるかを評価する。
図18、図19、図20、および図21は、それぞれ、C型トポロジー、L型トポロジー、H型トポロジー、およびO型トポロジーにおける相対位置評価と絶対位置評価を示す図である。
各図は、それぞれの評価ごとに全体スケール(左側)と詳細スケール(右側)とを示す。
先ず、相対評価について説明する。図18のC型トポロジーの相対位置評価において、本発明の位置推定方法のV[rij]は、SOLのV[rij]より低く、かつ、0に極めて近い。一方、DV−hopのV[rij]は、SOLや本発明の位置推定方法と比較すると非常に大きい。この原因は、NLOS混在環境においては、DV−hopでは、算出された1ホップの距離精度が低いため、多角測量の最小二乗法から解が得られず、その場合には、センサーノードの位置を3個のアンカーノード重心として推定するためである。すなわち、NLOS混在環境においてアンカーノードの個数が3個では、DV−hopは、ほぼ機能しない。本発明の位置推定方法とSOLとを比較すると、本発明の位置推定方法のV[rij]は、SOLよりも常に低く、極めて0に近い。すなわち、本発明の位置推定方法は、SOLよりも高精度なトポロジー形状を再現でき、そのばらつきも極めて小さい。SOLは、いくつかのケースで折れ曲がりが発生し、V[rij]が高くなる。
図19のL型トポロジーの相対評価V[rij]も、C型トポロジーと同等の傾向(本発明の位置推定方法は、SOLよりも常に低く極めて0に近く、DV−hopは、この2方式と比較して非常に高い)であるが、SOLのV[rij]がC型トポロジーの場合より低い値になっている。L型トポロジーは、縦方向と横方向の2つのブロックの組み合わせであり、比較的少ないホップ数でも形状の識別が可能である。一方、C型トポロジーは、上部と下部の横方向のブロックと左側の縦方向のブロックの3つのブロックの組み合わせであり、L型トポロジーと比較すると、ホップ数を重ねないと、その形状が識別できない。従って、SOLは、C型トポロジーよりL型トポロジーにおいて比較的折れ曲がりを抑制でき、そのV[rij]が低くなると考えられる。
図20のH型トポロジーの相対評価は、C型トポロジーとほぼ同等の結果となる。H型トポロジーは、左右の縦方向のブロックと中央の横方向のブロックの3つのブロックの組み合わせであることから、C型トポロジーと同等の結果になると考えられる。
図21のO型トポロジーの相対評価も同様の傾向であるが、SOLのV[rij]が他の型のトポロジーの場合より高く、DV−hopは、やはり他の2方式と比較すると非常に高い値であるが、V[rij]がセンサーノード数の増加に従って減少する。SOLのV[rij]が高くなる原因は、O型トポロジーが上下の横方向のブロックと左右の縦方向のブロックの4つのブロックの組み合わせであり、他の型のトポロジーより形状を識別するにはより多くのホップ数が必要なためと考えられる。DV−hopがセンサーノード数の増加とともにV[rij]が減少するのは、多角測量の最小二乗法が収束しないケースが少なくなっているためであるが、その値は、他の2方式と比較して圧倒的に高いことは変わらない。
以上のことから、
・DV−hopは、いずれの型のトポロジーにおいてもオリジナルの形状を再現できない。すなわち、センサーノード間の相対的位置関係は、著しく不正である。
・SOLは、トポロジーの型に依存して形状再現の精度が変動する。すなわち、トポロジーの型に依存してセンサーノード間の相対的位置関係が不正となる場合がある。
・本発明の位置推定方法は、トポロジーの型に関わらず、高精度に形状を再現する。すなわち、トポロジーの型に依存せずに高精度なセンサーノード間の相対的位置関係を推定できる。
といえる。
次に、絶対位置評価について述べる。図18の絶対位置評価において、本発明の位置推定方法は、SOLと比較して、位置推定誤差が非常に小さく、位置推定精度が圧倒的に高い。SOLは、少数のネットワークのトポロジーにおいて、部分的な形状は、正しく推定されているが、折れ曲がりが発生し、トポロジー全体として大きな誤差となる。数は少ないが、誤差が非常に大きなケースがあり、これが全トポロジーの平均誤差を大きく引き上げる。
一方、本発明の位置推定方法は、完全に折れ曲がりトポロジーを抑制し、安定して低い誤差を維持する。DV−hopの位置推定誤差は、SOLより低くなっているが、相対位置評価で述べたように、DV−hopは、センサーノード間の相対位置関係が全く再現されておらず、位置推定誤差以上に位置情報としての有用性は非常に低い。
図19の絶対位置評価では、SOLの位置推定誤差は、ノード数が増えると小さくなって安定し、DV−hopより良くなる。これは、前述したようにL型トポロジーは、少ないホップ数でも形状を識別できるため、SOLにおいても折れ曲がりが抑制され、C型トポロジーの場合より改善したためと考えられる。DV−hopは、C型トポロジーと同様に0.2から0.25となる。これは、大部分のセンサーノードが3個のアンカーノードの重心位置として推定しているためである。本発明の位置推定方法は、図18と同様に、その位置推定誤差は、安定して非常に小さい。
図20の絶対位置評価では、SOLの値は、大きく変動し、図19のL型トポロジーの場合と明らかに異なる。大きな値となる場合は、折れ曲がりが多く発生しており、その原因は、相対評価で述べたように、H型トポロジーは、L型トポロジーと比較すると、その形状を識別するには多くのホップ数を必要とするためである。DV−hopの位置推定誤差は、上述したのと同様の結果となる。本発明の位置推定方法は、上述したのと同様に安定して非常に低い。
図21のO型トポロジーの絶対位置評価では、SOLのH型トポロジーと同様に変動する。その原因は、C型トポロジー、H型トポロジーと同じ要因による。DV−hopの傾向が異なるが、これは、多角測量における最小二乗法から解が得られるケースが増えているためである。
図22は、C型トポロジーにおけるアンカーノードの個数に応じたDV−hopの位置推定誤差を示す図である。この図から分かるようにアンカーノードの個数を増やしても、DV−hopの精度は改善しない。DV−hopでは、アンカーノード間にNLOSが混在すれば、1ホップの見積もり距離の精度が劣化し、多角測量のセンサーノードとアンカーノードとの間にNLOSが混在すると、精度の低い1ホップ距離に基づくセンサーノードとアンカーノードとの間の距離の精度は、さらに劣化する。この距離見積もり手法は、アンカーノードを増やしてもアンカーノード間を含むすべてのセンサーノード間においてNLOSとなる空間を排除できないため、改善されない。すなわち、多角測量は、LOS環境の距離を想定しており、DV−hopは、障害物がある環境ではアンカーノードを増やしてもセンサーノード間のNLOS環境を排除できないため、位置推定誤差の改善は困難となる。以上のことから、
・DV−hopは、NLOS混在環境では有用な位置推定ができない。
・SOLは、トポロジーの型に依存して折れ曲がりが発生し、その位置精度が劣化する。
・本発明の位置推定方法は、トポロジーの型に依存せず、高精度な位置を推定可能である。
といえる。
図23、図24、図25および図26は、それぞれ、C型トポロジー、L型トポロジー、H型トポロジーおよびO型トポロジーにおけるオリジナルのトポロジーと本発明の位置推定方法とDV−hopそれぞれの推定トポロジーを示す図である。
図23において、図18の相対位置評価が示すように、DV−hopの推定センサーノードの位置により構成されるネットワーク形状は、オリジナルネットワークの形状と著しく異なる。
一方、本発明の位置推定方法により推定された形状は、オリジナルのネットワーク形状にほぼ一致する。図24、図25および図26に示すネットワーク形状においても、同様に、DV−hopにより推定された形状は、オリジナルのネットワークと著しく異なり、本発明の位置推定方法により推定された形状は、オリジナルのネットワーク形状にほぼ一致する。従って、C型トポロジー、L型トポロジー、H型トポロジー、O型トポロジーとなるNLOS混在環境において、本発明の位置推定方法は、ネットワークのトポロジーの形状再現に圧倒的に優れている。
以上のことから、本発明の位置推定方法は、SOLでは折れ曲がる可能性があり、DV−hopでは推定困難であるNLOS環境においてもネットワーク全体の高精度な形状再現と高精度なセンサーノードの位置推定が維持可能である。
上述したシミュレーション評価によって、本発明の位置推定方法は、センサーノードの位置を高精度に推定できることが分かった。
上記においては、仮の自己位置wi(t)は、2次元の位置情報からなると説明したが、この発明の実施の形態においては、これに限らず、仮の自己位置wi(t)は、3次元の位置情報からなっていてもよい。
この場合、センサーノード1〜7のうち、4個のセンサーノードがアンカーノードであり、アンカーノードの真位置WA=(XA,YA,ZA)と推定位置wA=(xA,yA,zA)との関係は、次式のようになる。
式(9)を用いて、4つのアンカーノードの真位置と推定位置とから12個の連立方程式を作成し、12個の連立方程式を解くことにより、係数a,b,c,d,e,f,g,h,i,tx,ty,tzを得る。
そして、得られた係数a,b,c,d,e,f,g,h,i,tx,ty,tzを用いて、全てのセンサーノードiについて、次式によって推定位置wi=(xi,yi,zi)を絶対位置Wi=(Xi,Yi,Zi)に変換する。
従って、仮の自己位置wi(t)が3次元の位置情報からなる場合、変換手段96は、式(9),(10)を用いてセンサーノードiの推定位置wi=(xi,yi,zi)を絶対位置Wi=(Xi,Yi,Zi)に変換する。
また、上記においては、無線ネットワーク10は、センサーノード1〜7を備えると説明したが、この発明の実施の形態においては、これに限らず、無線ネットワーク10は、一般的には、m(mは4以上の整数)個の無線装置を備えていればよい。上述した領域判定によってトポロジー矛盾の有無を判定するためには、位置推定の対象となる対象無線装置と、対象無線装置の1次近傍無線装置と、対象無線装置の2次近傍無線装置と、対象無線装置と2次近傍無線装置との共通1次近傍無線装置とが必要であるので、無線ネットワーク10は、少なくとも4個の無線装置を備えている必要があるからである。
位置推定の対象が無線装置である場合、図10に示すフローチャートのステップS5において実行される位置推定処理は、次のように定義される。
位置推定処理は、前記対象無線装置の仮の自己位置情報と前記対象無線装置からnホップの位置に存在するn次近傍無線装置の仮の自己位置情報とに基づいて計算された前記対象無線装置と前記n次近傍無線装置との間の距離がnホップのホップ数からなる距離に近づくように前記対象無線装置の仮の自己位置を前記対象無線装置からのホップ数nに応じてそれぞれ修正するための1次修正ベクトルVi {1}(t)、2次修正ベクトルVi {2}(t)、・・・及びn次修正ベクトルVi {n}(t)からなるn個の修正ベクトルVi {1}(t)〜Vi {n}(t)を、1次修正ベクトルVi {1}(t)とn次修正ベクトルとVi {n}(t)からなる第1番目の修正ベクトル(Vi {1}(t)+Vi {n}(t))、1次修正ベクトルVi {1}(t)とn−1次修正ベクトルVi {n−1}(t)とからなる第2番目の修正ベクトル(Vi {1}(t)+Vi {n−1}(t))、・・・、1次修正ベクトルVi {1}(t)と2次修正ベクトルVi {2}(t)とからなる第n−1番目の修正ベクトル(Vi {1}(t)+Vi {2}(t))の順に適用して前記対象無線装置の仮の自己位置を推定する処理である。
また、図10に示すフローチャートにおいて、ステップS10の後にステップS5が実行される場合、推定された位置を用いて算出された無線装置間の演算距離が用いられるので、位置推定処理は、前記対象無線装置の仮の自己位置情報と前記対象無線装置からnホップの位置に存在するn次近傍無線装置の仮の自己位置情報とに基づいて計算された前記対象無線装置と前記n次近傍無線装置との間の距離が推定位置を用いて算出された前記対象無線装置と前記n次近傍無線装置との間の演算距離に近づくように前記対象無線装置の仮の自己位置を前記対象無線装置からのホップ数nに応じてそれぞれ修正するための1次修正ベクトルVi {1}(t)、2次修正ベクトルVi {2}(t)、・・・及びn次修正ベクトルVi {n}(t)からなるn個の修正ベクトルVi {1}(t)〜Vi {n}(t)を、1次修正ベクトルVi {1}(t)とn次修正ベクトルとVi {n}(t)からなる第1番目の修正ベクトル(Vi {1}(t)+Vi {n}(t))、1次修正ベクトルVi {1}(t)とn−1次修正ベクトルVi {n−1}(t)とからなる第2番目の修正ベクトル(Vi {1}(t)+Vi {n−1}(t))、・・・、1次修正ベクトルVi {1}(t)と2次修正ベクトルVi {2}(t)とからなる第n−1番目の修正ベクトル(Vi {1}(t)+Vi {2}(t))の順に適用して前記対象無線装置の仮の自己位置を推定する処理である。
また、領域判定処理は、次のように定義される。領域判定処理は、対象無線装置の推定された位置と対象無線装置の1次近傍無線装置の推定された位置との間の線分の垂直二等分線を基準として対象無線装置の2次近傍無線装置の推定された位置が対象無線装置および対象無線装置の1次近傍無線装置のいずれに近いかを判定し、当該判定に引き続いて、対象無線装置と対象無線装置の2次近傍無線装置との共通の1次近傍無線装置の推定された位置と対象無線装置の推定された位置との間の線分の垂直二等分線を基準として対象無線装置の2次近傍無線装置の推定された位置が対象無線装置および共通の1次近傍無線装置のいずれに近いかを共通の1次近傍無線装置を複数回変えて判定する処理である。
更に、距離矛盾判定処理は、次のように定義される。距離矛盾判定処理は、対象無線装置の複数の1次近傍無線装置と複数の2次近傍無線装置とを用いて、対象無線装置の推定された位置が対象無線装置の1次近傍無線装置よりも対象無線装置の2次近傍無線装置に近いと判定されたとき、トポロジー矛盾があると判定する処理である。
図4に示す位置推定装置9の取得手段92、トポロジー生成手段93、位置更新手段94、位置情報生成手段95、変換手段96、判定手段97、演算手段98および仮想トポロジー生成手段99は、ソフトウェアによって実現されてもよい。
この場合、位置推定装置9は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Random Access Memory)を備える。そして、ROMは、図10および図11に示すフローチャートからなるプログラムPROGを記憶する。
CPUは、プログラムPROGをROMから読み出して実行し、上述した方法によってm個の無線装置の位置を推定する。そして、CPUは、ステップS10の後にステップS5を実行する場合、既に推定された位置を用いて対象無線装置とn次近傍無線装置との間の距離を演算し、その演算した演算距離をRAMに記憶しておき、対象無線装置の仮の自己位置とn次近傍無線装置の仮の自己位置とを用いて算出された距離が対象無線装置とn次近傍無線装置との間の演算距離に近づくように対象無線装置の仮の自己位置を更新する。
従って、プログラムPROGは、m個の無線装置の位置の推定をコンピュータ(CPU)に実行させるためのプログラムである。
この発明の実施の形態においては、プログラムPROGは、CDおよびDVD等の記録媒体に記憶されていてもよい。そして、無線装置の位置を推定しようとするユーザは、その記録媒体をコンピュータにセットし、記録媒体からプログラムPROGを読み出して実行する。
従って、プログラムPROGを記録した記録媒体は、コンピュータが読み取り可能な記録媒体である。
上記においては、位置推定装置9は、クラウド上に配置されると説明したが、この発明の実施の形態においては、これに限らず、位置推定装置9は、シンク8に設置されてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。