(57)【特許請求の範囲】
【請求項１】
１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報をｍ（ｍは、４以上の整数）個の無線ノードの各々から取得する取得部と、
前記ｍ個の無線ノードの各々についての隣接ノード情報に基づいて、前記ｍ個の無線ノードの配置関係を示す固定トポロジを生成する固定トポロジ生成部と、
前記ｍ個の無線ノードの仮の自己位置を生成する自己位置生成部と、
前記固定トポロジに基づいて前記ｍ個の無線ノードの仮の自己位置を更新することにより、前記ｍ個の無線ノードの位置を推定する位置更新部と、
前記位置更新部により推定された一の無線ノードの位置が前記一の無線ノードから１ホップの位置に存在する無線ノードよりも前記一の無線ノードから２ホップの位置に存在する無線ノードに近いことを示すトポロジ矛盾が発生しているか否かを判定し、前記固定トポロジに対応するとともに前記ｍ個の無線ノードにおけるトポロジ矛盾の発生頻度を示す領域判定値を計算するトポロジ矛盾判定部と、
１ホップの位置に存在する２つの無線ノード間の仮想無線通信距離を設定し、前記仮想無線通信距離に基づいて前記一の無線ノードから１ホップの位置にある１次近傍ノードを再設定し、再設定された１次近傍ノードに基づいて前記ｍ個の無線ノードの仮想的な配置関係を示す少なくとも１つの仮想トポロジを生成する仮想トポロジ生成部と、
を備え、
前記位置更新部は、前記少なくとも１つの仮想トポロジの各々に基づいて、前記ｍ個の無線ノードの位置を推定し、
前記トポロジ矛盾判定部は、前記少なくとも１つの仮想トポロジの各々に対応する前記ｍ個の無線ノードの推定位置に基づいて、前記少なくとも１つの仮想トポロジの各々に対応する領域判定値を計算し、
前記仮想トポロジ生成部は、前記固定トポロジに対応する領域判定値と前記少なくとも１つの仮想トポロジの各々に対応する領域判定値とに基づいて、前記固定トポロジに基づく前記ｍ個の無線ノードの推定位置と、前記少なくとも１つの仮想トポロジの各々に基づく前記ｍ個の無線ノードの推定位置とのうちいずれかを、前記ｍ個の無線ノードの位置の推定結果として出力し、
前記トポロジ矛盾判定部は、
前記トポロジ矛盾判定部から最後に受けた現在の領域判定値を、前記現在の領域判定値よりも１つ前に入力された直前の領域判定値と比較する判定値比較部と、
前記直前の領域判定値に対応する第１トポロジで用いられた仮想無線通信距離を、前記現在の領域判定値に対応する第２トポロジで用いられた仮想無線通信距離と比較する距離比較部と、
前記判定値比較部による前記現在の領域判定値と前記直前の領域判定値との比較結果と、前記距離比較部による前記第１トポロジで用いられた仮想無線通信距離と前記第２トポロジで用いられた仮想無線通信距離との比較結果とに基づいて、新たな仮想トポロジの生成に用いられる仮想無線通信距離を設定する距離設定部と、
を備える位置推定装置。
【請求項２】
請求項１に記載の位置推定装置であって、 
前記距離設定部は、前記第２トポロジで用いられた仮想無線通信距離が前記第１トポロジで用いられた仮想無線通信距離よりも小さいと距離比較部により判断され、かつ、前記現在の領域判定値が前記直前の領域判定値よりも小さいと前記判定値比較部により判断された場合、前記新たな仮想トポロジの生成に用いられる仮想無線通信距離を、前記第２トポロジで用いられた仮想無線通信距離よりも小さくし、
前記距離設定部は、前記第２トポロジで用いられた仮想無線通信距離が前記第１トポロジで用いられた仮想無線通信距離よりも小さいと距離比較部により判断され、かつ、前記現在の領域判定値が前記直前の領域判定値以上であると前記判定値比較部により判断された場合、前記新たな仮想トポロジの生成に用いられる仮想無線通信距離を、前記第２トポロジで用いられた仮想無線通信距離よりも大きくする位置推定装置。
【請求項３】
請求項２に記載の位置推定装置であって、 
前記距離設定部は、前記第２トポロジで用いられた仮想無線通信距離が前記第１トポロジで用いられた仮想無線通信距離以上である距離比較部により判断され、かつ、前記現在の領域判定値が前記直前の領域判定値よりも大きいと前記判定値比較部により判断された場合、前記新たな仮想トポロジの生成に用いられる仮想無線通信距離を、前記第２トポロジで用いられた仮想無線通信距離よりも小さくし、
前記距離設定部は、前記第２トポロジで用いられた仮想無線通信距離が前記第１トポロジで用いられた仮想無線通信距離以上であると距離比較部により判断され、かつ、前記現在の領域判定値が前記直前の領域判定値以下である前記判定値比較部により判断された場合、前記新たな仮想トポロジの生成に用いられる仮想無線通信距離を、前記第２トポロジで用いられた仮想無線通信距離よりも大きくする位置推定装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の位置推定装置であって、
前記固定トポロジに対応する領域判定値と、第１仮想トポロジから第ｋ（ｋは２以上の整数）仮想トポロジまでの各々の領域判定値との中から、領域判定値の最小値を決定する最小値決定部と、
第（ｋ＋１）仮想トポロジに対応する領域判定値を新たに前記トポロジ矛盾判定部から受けた場合、第（ｋ＋１）仮想トポロジに対応する領域判定値を前記最小値と比較する最小値比較部と、
第（ｋ＋１）仮想トポロジに対応する領域判定値が前記最小値よりも大きい場合、前記最小値の更新率を所定の閾値と比較する更新率比較部と、
を備え、
前記仮想トポロジ生成部は、前記更新率が前記閾値よりも小さいと前記更新率比較部により判定された場合、前記最小値に対応するトポロジに基づく前記ｍ個の無線ノードの推定位置を、前記ｍ個の無線ノードの位置推定結果として出力することを決定する位置推定装置。
【請求項５】
１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報を、無線通信空間内を移動する移動無線ノードと前記無線通信空間内を移動しないｍ（ｍは、４以上の整数）個の固定無線ノードとの各々から取得する取得部と、
前記ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、前記ｍ個の固定無線ノードの位置を推定する固定ノード位置推定部と、
前記移動無線ノードの隣接ノード情報と前記固定ノード位置推定部による前記ｍ個の固定無線ノードの推定位置とに基づいて、前記移動無線ノードの位置を推定する移動ノード位置推定部と、
を備え、
前記固定ノード位置推定部は、
前記ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、前記ｍ個の固定無線ノードの配置関係を示す固定トポロジを生成する固定トポロジ生成部と、
前記ｍ個の固定無線ノードの仮の自己位置を生成する第１自己位置生成部と、
前記固定トポロジに基づいて前記ｍ個の固定無線ノードの仮の自己位置を更新することにより、前記ｍ個の固定無線ノードの位置を推定する第１位置更新部と、
を備え、
前記移動ノード位置推定部は、
前記ｍ個の固定無線ノードのうち前記移動無線ノードの隣接ノード情報に記録された固定無線ノードである隣接固定ノードの隣接ノード情報を前記取得部から取得し、前記移動無線ノードの隣接ノード情報と前記隣接固定ノードの隣接ノード情報とに基づいて、前記移動無線ノードの移動トポロジを生成する移動トポロジ生成部と、
前記移動無線ノードの仮の自己位置を生成する第２自己位置生成部と、
前記移動トポロジと前記隣接固定ノードの推定位置とに基づいて、前記移動無線ノードの仮の自己位置を更新することにより、前記移動無線ノードの位置を推定する第２位置更新部と、
を備える位置推定装置。
【請求項６】
請求項５に記載の位置推定装置であって、
前記移動トポロジの生成に用いられる隣接ノード情報の数は、前記固定トポロジの生成に用いられる隣接ノード情報の数よりも少ない位置推定装置。
【請求項７】
請求項５または請求項６に記載の位置推定装置であって、
前記取得部は、前記ｍ個の固定無線ノードの各々についての隣接ノード情報と前記移動無線ノードの隣接ノード情報とを定期的に取得し、
前記固定ノード位置推定部は、前記ｍ個の固定無線ノードの位置を第１周期で繰り返し推定し、
前記移動ノード位置推定部は、前記移動無線ノードの位置を前記第１周期よりも短い第２周期で繰り返し推定する位置推定装置。
【請求項８】
請求項５ないし請求項７のいずれかに記載の位置推定装置であって、
前記固定トポロジ生成部は、前記移動無線ノードの位置推定に既に用いられた前記移動無線ノードの隣接ノード情報を仮想的な固定無線ノードの隣接ノード情報に設定し、前記ｍ個の固定無線ノードの各々についての隣接ノード情報と、前記仮想的な固定無線ノードの隣接ノード情報とに基づいて、固定トポロジを生成する位置推定装置。
【請求項９】
無線ノードの位置推定をコンピュータに実行させるための位置推定プログラムであって、
１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報をｍ（ｍは、４以上の整数）個の無線ノードの各々から取得する取得ステップと、
前記ｍ個の無線ノードの各々についての隣接ノード情報に基づいて、前記ｍ個の無線ノードの配置関係を示す固定トポロジを生成する固定トポロジ生成ステップと、
前記ｍ個の無線ノードの仮の自己位置を生成する自己位置生成ステップと、
前記固定トポロジに基づいて前記ｍ個の無線ノードの仮の自己位置を更新することにより、前記ｍ個の無線ノードの位置を推定する位置更新ステップと、
前記位置更新ステップにより推定された一の無線ノードの位置が前記一の無線ノードから１ホップの位置に存在する無線ノードよりも前記一の無線ノードから２ホップの位置に存在する無線ノードに近いことを示すトポロジ矛盾が発生しているか否かを判定し、前記固定トポロジに対応するとともに前記ｍ個の無線ノードにおけるトポロジ矛盾の発生頻度を示す領域判定値を計算するトポロジ矛盾判定ステップと、
１ホップの位置に存在する２つの無線ノード間の仮想無線通信距離を設定し、前記仮想無線通信距離に基づいて前記一の無線ノードから１ホップの位置にある１次近傍ノードを再設定し、再設定された１次近傍ノードに基づいて前記ｍ個の無線ノードの仮想的な配置関係を示す少なくとも１つの仮想トポロジを生成する仮想トポロジ生成ステップと、
を備え、
前記位置更新ステップは、前記少なくとも１つの仮想トポロジの各々に基づいて、前記ｍ個の無線ノードの位置を推定し、
前記トポロジ矛盾判定ステップは、前記少なくとも１つの仮想トポロジの各々に対応する前記ｍ個の無線ノードの推定位置に基づいて、前記少なくとも１つの仮想トポロジの各々に対応する領域判定値を計算し、
前記仮想トポロジ生成ステップは、前記固定トポロジに対応する領域判定値と前記少なくとも１つの仮想トポロジの各々に対応する領域判定値とに基づいて、前記固定トポロジに基づく前記ｍ個の無線ノードの推定位置と、前記少なくとも１つの仮想トポロジの各々に基づく前記ｍ個の無線ノードの推定位置とのうちいずれかを、前記ｍ個の無線ノードの位置の推定結果として出力し、
前記トポロジ矛盾判定ステップは、
前記トポロジ矛盾判定ステップから最後に受けた現在の領域判定値を、前記現在の領域判定値よりも１つ前に入力された直前の領域判定値と比較する判定値比較ステップと、
前記直前の領域判定値に対応する第１トポロジで用いられた仮想無線通信距離を、前記現在の領域判定値に対応する第２トポロジで用いられた仮想無線通信距離と比較する距離比較ステップと、
前記判定値比較ステップによる前記現在の領域判定値と前記直前の領域判定値との比較結果と、前記距離比較ステップによる前記第１トポロジで用いられた仮想無線通信距離と前記第２トポロジで用いられた仮想無線通信距離との比較結果とに基づいて、新たな仮想トポロジの生成に用いられる仮想無線通信距離を設定する距離設定ステップと、
を備える位置推定プログラム。
【請求項１０】
無線通信空間内を移動する移動無線ノードの位置推定をコンピュータに実行させる位置推定プログラムであって、
１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報を、前記移動無線ノードと、前記無線通信空間内を移動しないｍ（ｍは、４以上の整数）個の固定無線ノードとの各々から取得する取得ステップと、
前記ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、前記ｍ個の固定無線ノードの位置を推定する固定ノード位置推定ステップと、
前記移動無線ノードの隣接ノード情報と前記固定ノード位置推定ステップによる前記ｍ個の固定無線ノードの推定位置とに基づいて、前記移動無線ノードの位置を推定する移動ノード位置推定ステップと、
を備え、
前記固定ノード位置推定ステップは、
前記ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、前記ｍ個の固定無線ノードの配置関係を示す固定トポロジを生成する固定トポロジ生成ステップと、
前記ｍ個の固定無線ノードの仮の自己位置を生成する第１自己位置生成ステップと、
前記固定トポロジに基づいて前記ｍ個の固定無線ノードの仮の自己位置を更新することにより、前記ｍ個の固定無線ノードの位置を推定する第１位置更新ステップと、
を備え、
前記移動ノード位置推定ステップは、
前記ｍ個の固定無線ノードのうち前記移動無線ノードの隣接ノード情報に記録された固定無線ノードである隣接固定ノードの隣接ノード情報を前記取得ステップから取得し、前記移動無線ノードの隣接ノード情報と前記隣接固定ノードの隣接ノード情報とに基づいて、前記移動無線ノードの移動トポロジを生成する移動トポロジ生成ステップと、
前記移動無線ノードの仮の自己位置を生成する第２自己位置生成ステップと、
前記移動トポロジと前記隣接固定ノードの推定位置とに基づいて、前記移動無線ノードの仮の自己位置を更新することにより、前記移動ノードの位置を推定する第２位置更新ステップと、
を備える位置推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己組織化マップを用いて無線ノードの位置を推定する位置推定装置に関する。
【背景技術】
【０００２】
複数の無線ノードにより構成される無線センサネットワークにおいて、無線ノードの位置は、無線ノードに搭載されたセンサのセンシングデータの取得位置として重要な情報である。従来、無線ノードの位置を推定する方式として、自己組織化マップ（ＳＯＭ）を用いた無線ノード位置推定方式（ＳＯＬ：Ｓｅｌｆ−Ｏｒｇａｎｉｚｉｎｇ  Ｌｏｃａｌｉｚａｔｉｏｎ）が知られている。【０００３】
ＳＯＬは、極少数のアンカーノードを使用し、測距デバイスを用いずに、高精度な位置推定が可能である。また、ＳＯＬは、障害物による見通し内（ＬＯＳ：Ｌｉｎｅ−Ｏｆ−Ｓｉｇｈｔ）と見通し外（ＮＬＯＳ：Ｎｏｎ−Ｌｉｎｅ−Ｏｆ−Ｓｉｇｈｔ）が混在する環境においても位置精度の劣化が少ない（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】北之馬  貴正、高島  優斗、安達  直世、滝沢  泰久，“ＮＬＯＳ混在環境における無線センサネットワークの集約型自己組織化ノード位置推定方式とその精度評価”，情報処理学会論文誌，Ｖｏｌ．５７，Ｎｏ．２，４９４−５０６
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のＳＯＬに基づく位置推定方式を用いて無線ノードの位置を推定した場合、無線ノードの推定位置が１次近傍ノードよりも２次近傍ノードに近いトポロジ矛盾が発生することがある。トポロジ矛盾が発生した場合、無線ノード、１次近傍ノード及び２次近傍ノードのいずれかの位置が誤って推定された可能性が高いため、位置推定処理が再度実行される。【０００６】
しかし、位置推定処理が再度実行された場合、新たなトポロジ矛盾が発生する可能性がある。従来のＳＯＬに基づく位置推定方式では、トポロジ矛盾の発生を抑制することが困難であるため、無線ノードの位置推定の精度を向上させることが困難であった。【０００７】
そこで、本発明は、上記問題点に鑑み、無線ノードの位置を高精度に推定可能な位置推定装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
本発明に係る位置推定装置は、取得部と、固定トポロジ生成部と、自己位置生成部と、位置更新部と、トポロジ矛盾判定部と、仮想トポロジ生成部とを備える。取得部は、１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報をｍ（ｍは、４以上の整数）個の無線ノードの各々から取得する。固定トポロジ生成部は、ｍ個の無線ノードの各々についての隣接ノード情報に基づいて、ｍ個の無線ノードの配置関係を示す固定トポロジを生成する。自己位置生成部は、ｍ個の無線ノードの仮の自己位置を生成する。位置更新部は、固定トポロジに基づいてｍ個の無線ノードの仮の自己位置を更新することにより、ｍ個の無線ノードの位置を推定する。トポロジ矛盾判定部は、位置更新部により推定された一の無線ノードの位置が一の無線ノードから１ホップの位置に存在する無線ノードよりも一の無線ノードから２ホップの位置に存在する無線ノードに近いことを示すトポロジ矛盾が発生しているか否かを判定し、固定トポロジに対応するとともにｍ個の無線ノードにおけるトポロジ矛盾の発生頻度を示す領域判定値を計算する。仮想トポロジ生成部は、１ホップの位置に存在する２つの無線ノード間の仮想無線通信距離を設定し、仮想無線通信距離に基づいて一の無線ノードから１ホップの位置にある１次近傍ノードを再設定し、再設定された１次近傍ノードに基づいてｍ個の無線ノードの仮想的な配置関係を示す少なくとも１つの仮想トポロジを生成する。位置更新部は、少なくとも１つの仮想トポロジの各々に基づいて、ｍ個の無線ノードの位置を推定する。トポロジ矛盾判定部は、少なくとも１つ仮想トポロジの各々に対応するｍ個の無線ノードの推定位置に基づいて、少なくとも１つ仮想トポロジの各々に対応する領域判定値を計算する。仮想トポロジ生成部は、固定トポロジに対応する領域判定値と少なくとも１つの仮想トポロジの各々に対応する領域判定値とに基づいて、固定トポロジに基づくｍ個の無線ノードの推定位置と、少なくとも１つの仮想トポロジの各々に基づくｍ個の無線ノードの推定位置とのうちいずれかを、ｍ個の無線ノードの位置の推定結果として出力する。【０００９】
好ましくは、位置推定装置において、トポロジ矛盾判定部は、判定値比較部と、距離比較部と、離設定部とを備える。判定値比較部は、トポロジ矛盾判定部から最後に受けた現在の領域判定値を、現在の領域判定値よりも１つ前に入力された直前の領域判定値と比較する。距離比較部は、直前の領域判定値に対応する第１トポロジで用いられた仮想無線通信距離を、現在の領域判定値に対応する第２トポロジで用いられた仮想無線通信距離と比較する。距離設定部は、判定値比較部による現在の領域判定値と直前の領域判定値との比較結果と、距離比較部による第１トポロジで用いられた仮想無線通信距離と第２トポロジで用いられた仮想無線通信距離との比較結果とに基づいて、新たな仮想トポロジの生成に用いられる仮想無線通信距離を設定する。【００１０】
好ましくは、位置推定装置において、距離設定部は、第２トポロジで用いられた仮想無線通信距離が第１トポロジで用いられた仮想無線通信距離よりも小さいと距離比較部により判断され、かつ、現在の領域判定値が直前の領域判定値よりも小さいと判定値比較部により判断された場合、新たな仮想トポロジの生成に用いられる仮想無線通信距離を、第２トポロジで用いられた仮想無線通信距離よりも小さくする。距離設定部は、第２トポロジで用いられた仮想無線通信距離が第１トポロジで用いられた仮想無線通信距離よりも小さいと距離比較部により判断され、かつ、現在の領域判定値が直前の領域判定値以上であると判定値比較部により判断された場合、新たな仮想トポロジの生成に用いられる仮想無線通信距離を、第２トポロジで用いられた仮想無線通信距離よりも大きくする。【００１１】
好ましくは、位置推定装置において、距離設定部は、第２トポロジで用いられた仮想無線通信距離が第１トポロジで用いられた仮想無線通信距離以上である距離比較部により判断され、かつ、現在の領域判定値が直前の領域判定値よりも大きいと判定値比較部により判断された場合、新たな仮想トポロジの生成に用いられる仮想無線通信距離を、第２トポロジで用いられた仮想無線通信距離よりも小さくする。距離設定部は、第２トポロジで用いられた仮想無線通信距離が第１トポロジで用いられた仮想無線通信距離以上であると距離比較部により判断され、かつ、現在の領域判定値が直前の領域判定値以下である判定値比較部により判断された場合、新たな仮想トポロジの生成に用いられる仮想無線通信距離を、第２トポロジで用いられた仮想無線通信距離よりも大きくする。【００１２】
好ましくは、位置推定装置は、さらに、最小値決定部と、最小値比較部と、更新率比較部とを備える。最小値決定部は、固定トポロジに対応する領域判定値と、第１仮想トポロジから第ｋ（ｋは２以上の整数）仮想トポロジまでの各々の領域判定値との中から、領域判定値の最小値を決定する。最小値比較部は、第（ｋ＋１）仮想トポロジに対応する領域判定値を新たにトポロジ矛盾判定部から受けた場合、第（ｋ＋１）仮想トポロジに対応する領域判定値を最小値と比較する。更新率比較部は、第（ｋ＋１）仮想トポロジに対応する領域判定値が最小値よりも大きい場合、最小値の更新率を所定の閾値と比較する。仮想トポロジ生成部は、更新率が閾値よりも小さいと更新率比較部により判定された場合、最小値に対応するトポロジに基づくｍ個の無線ノードの推定位置を、ｍ個の無線ノードの位置推定結果として出力することを決定する。【００１３】
また、本発明に係る位置推定装置は、取得部と、固定ノード位置推定部と、移動ノード位置推定部とを備える。取得部は、１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報を、無線通信空間内を移動する移動無線ノードと無線通信空間内を移動しないｍ（ｍは、４以上の整数）個の固定無線ノードとの各々から取得する。固定ノード位置推定部は、ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、ｍ個の固定無線ノードの位置を推定する。移動ノード位置推定部は、移動無線ノードの隣接ノード情報と固定ノード位置推定部によるｍ個の固定無線ノードの推定位置とに基づいて、移動無線ノードの位置を推定する。固定ノード位置推定部は、固定トポロジ生成部と、第１自己位置生成部と、第１位置更新部と、を備える。固定トポロジ生成部は、ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、ｍ個の固定無線ノードの配置関係を示す固定トポロジを生成する。第１自己位置生成部は、ｍ個の固定無線ノードの仮の自己位置を生成する。第１位置更新部は、固定トポロジに基づいてｍ個の固定無線ノードの仮の自己位置を更新することにより、ｍ個の固定無線ノードの位置を推定する。移動ノード位置推定部は、移動トポロジ生成部と、第２自己位置生成部と、第２位置更新部とを備える。移動トポロジ生成部は、ｍ個の固定無線ノードのうち移動無線ノードの隣接ノード情報に記録された固定無線ノードである隣接固定ノードの隣接ノード情報を取得部から取得し、移動無線ノードの隣接ノード情報と隣接固定ノードの隣接ノード情報とに基づいて、移動無線ノードのトポロジを生成する。第２自己位置生成部は、移動無線ノードの仮の自己位置を生成する。第２位置更新部は、移動トポロジと隣接固定ノードの推定位置とに基づいて、移動無線ノードの仮の自己位置を更新することにより、移動無線ノードの位置を推定する。【００１４】
好ましくは、位置推定装置において、移動トポロジの生成に用いられる隣接ノード情報の数は、固定トポロジの生成に用いられる隣接ノード情報の数よりも少ない。【００１５】
好ましくは、位置推定装置において、取得部は、ｍ個の固定無線ノードの各々についての隣接ノード情報と移動無線ノードの隣接ノード情報とを定期的に取得する。固定ノード位置推定部は、ｍ個の固定無線ノードの位置を第１周期で繰り返し推定する。移動ノード位置推定部は、移動無線ノードの位置を第１周期よりも短い第２周期で繰り返し推定する。【００１６】
好ましくは、固定トポロジ生成部は、移動無線ノードの位置推定に既に用いられた移動無線ノードの隣接ノード情報を仮想的な固定無線ノードの隣接ノード情報に設定し、ｍ個の固定無線ノードの各々についての隣接ノード情報と、仮想的な固定無線ノードの隣接ノード情報とに基づいて、固定トポロジを生成する。【００１７】
本発明に係る位置推定プログラムは、無線ノードの位置推定をコンピュータに実行させるためのプログラムである。位置推定プログラムは、取得ステップと、固定トポロジ生成ステップと、自己位置生成ステップと、位置更新ステップと、トポロジ矛盾判定ステップと、仮想トポロジ生成ステップとを備える。取得ステップは、１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報をｍ（ｍは、４以上の整数）個の無線ノードの各々から取得する。固定トポロジ生成ステップは、ｍ個の無線ノードの各々についての隣接ノード情報に基づいて、ｍ個の無線ノードの配置関係を示す固定トポロジを生成する。自己位置生成ステップは、ｍ個の無線ノードの仮の自己位置を生成する。位置更新ステップは、固定トポロジに基づいてｍ個の無線ノードの仮の自己位置を更新することにより、ｍ個の無線ノードの位置を推定する。トポロジ矛盾判定ステップは、位置更新ステップにより推定された一の無線ノードの位置が一の無線ノードから１ホップの位置に存在する無線ノードよりも一の無線ノードから２ホップの位置に存在する無線ノードに近いことを示すトポロジ矛盾が発生しているか否かを判定し、固定トポロジに対応するとともにｍ個の無線ノードにおけるトポロジ矛盾の発生頻度を示す領域判定値を計算する。仮想トポロジ生成ステップは、１ホップの位置に存在する２つの無線ノード間の仮想無線通信距離を設定し、仮想無線通信距離に基づいて一の無線ノードから１ホップの位置にある１次近傍ノードを再設定し、再設定された１次近傍ノードに基づいてｍ個の無線ノードの仮想的な配置関係を示す少なくとも１つの仮想トポロジを生成する。位置更新ステップは、少なくとも１つの仮想トポロジの各々に基づいて、ｍ個の無線ノードの位置を推定する。トポロジ矛盾判定ステップは、少なくとも１つ仮想トポロジの各々に対応するｍ個の無線ノードの推定位置に基づいて、少なくとも１つ仮想トポロジの各々に対応する領域判定値を計算する。仮想トポロジ生成ステップは、固定トポロジに対応する領域判定値と少なくとも１つの仮想トポロジの各々に対応する領域判定値とに基づいて、固定トポロジに基づくｍ個の無線ノードの推定位置と、少なくとも１つの仮想トポロジの各々に基づくｍ個の無線ノードの推定位置とのうちいずれかを、ｍ個の無線ノードの位置の推定結果として出力する。【００１８】
本発明に係る位置推定プログラムは、無線通信空間内を移動する移動無線ノードの位置推定をコンピュータに実行させるためのプログラムである。位置推定プログラムは、取得ステップと、固定ノード位置推定ステップと、移動ノード位置推定ステップと、を備える。取得ステップは、１つの無線ノードから１ホップの位置に存在する１次近傍ノードの情報である隣接ノード情報を、移動無線ノードと、無線通信空間内を移動しないｍ（ｍは、４以上の整数）個の固定無線ノードとの各々から取得する。固定ノード位置推定ステップは、ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、ｍ個の固定無線ノードの位置を推定する。移動ノード位置推定ステップは、移動無線ノードの隣接ノード情報と固定ノード位置推定ステップによるｍ個の固定無線ノードの推定位置とに基づいて、移動無線ノードの位置を推定する。固定ノード位置推定ステップは、固定トポロジ生成ステップと、第１自己位置生成ステップと、第１位置更新ステップとを備える。固定トポロジ生成ステップは、ｍ個の固定無線ノードの各々についての隣接ノード情報に基づいて、ｍ個の固定無線ノードの配置関係を示す固定トポロジを生成する。第１自己位置生成ステップは、ｍ個の固定無線ノードの仮の自己位置を生成する。第１位置更新ステップは、固定トポロジに基づいてｍ個の固定無線ノードの仮の自己位置を更新することにより、ｍ個の固定無線ノードの位置を推定する。移動ノード位置推定ステップは、移動トポロジ生成ステップと、第２自己位置生成ステップと、第２位置更新ステップと、を備える。移動トポロジ生成ステップは、ｍ個の固定無線ノードのうち移動無線ノードの隣接ノード情報に記録された固定無線ノードである隣接固定ノードの隣接ノード情報を取得ステップから取得し、移動無線ノードの隣接ノード情報と隣接固定ノードの隣接ノード情報とに基づいて、移動無線ノードのトポロジを生成する。第２自己位置生成ステップは、移動無線ノードの仮の自己位置を生成する。第２位置更新ステップは、移動トポロジと隣接固定ノードの推定位置とに基づいて、移動無線ノードの仮の自己位置を更新することにより、移動ノードの位置を推定する。
【発明の効果】
【００１９】
本発明に係る位置更新装置は、ｍ個の無線ノードの隣接ノード情報に基づいて固定トポロジを生成し、固定トポロジに基づいてｍ個の無線ノードの仮の自己位置を更新することによりｍ個の無線ノードの位置を推定する。この位置更新装置は、１ホップの位置に存在する２つの無線ノード間の仮想無線通信距離を設定し、仮想無線通信距離に基づいて前記一の無線ノードから１ホップの位置にある１次近傍ノードを再設定し、再設定された１次近傍ノードに基づいて少なくとも１つ以上の仮想トポロジを生成する。この位置更新装置は、少なくとも１つの仮想トポロジに基づいてｍ個の無線ノードの位置を推定する。ｍ個の無線ノードの推定位置におけるトポロジ矛盾の発生頻度を示す領域判定値が、固定トポロジ及び少なくとも１つの仮想トポロジの各々について計算される。この位置推定装置は、計算された領域判定値のうち最小の領域判定値を特定し、特定した最小の領域判定値に対応するトポロジの推定位置を、位置推定結果として出力する。これにより、トポロジ矛盾の少ないｍ個の無線ノードの推定位置を特定することができるため、ｍ個の無線ノードの位置を高精度で推定することができる。【００２０】
また、本発明に係る位置推定装置は、ｍ個の無線ノードの隣接ノード情報に基づいて固定トポロジを生成し、生成した固定トポロジに基づいてｍ個の固定無線ノードの仮の自己位置を更新することよりｍ個の固定無線ノードの位置を推定する。この位置推定装置は、移動ノードの隣接ノード情報と、移動ノードの隣接ノード情報に記録された隣接固定ノードの隣接ノード情報とに基づいて、移動ノードの移動トポロジを生成する。この位置推定装置は、移動ノードの仮の自己位置を移動トポロジ及び隣接固定ノードの推定位置に基づいて更新することにより、移動ノードの位置を推定する。固定ノードの位置を推定した後に移動ノードの位置を推定することにより、移動ノードの位置を高精度で推定することができる。
【図面の簡単な説明】
【００２１】
【図１】この発明の実施の形態に係る無線ネットワークの構成を示す概略図である。
【図２】図１に示す無線ノードにより生成される隣接ノード情報の一例を示す図である。
【図３】図１に示す固定ノードの構成を示す機能ブロック図である。
【図４】図１に示す移動ノードの構成を示す機能ブロック図である。
【図５】図１に示すシンクの構成を示す機能ブロック図である。
【図６】図１に示す位置推定装置の構成を示す機能ブロック図である。
【図７】図６に示す固定ノード位置推定部の構成を示す機能ブロック図である。
【図８】図６に示す移動ノード位置推定部の構成を示す機能ブロック図である。
【図９】図１に示す位置推定装置の動作を示すフローチャートである。
【図１０】図６に示す固定ノード位置推定部の動作を示すフローチャートである。
【図１１】図１に示す固定ノードの位置を推定した場合に生じるトポロジ矛盾を説明する概念図である。
【図１２】図１に示す固定ノードの推定位置においてトポロジ矛盾が発生しているか否かを判定する手順を説明するための概念図である。
【図１３】従来技術を用いて予め位置が指定された固定ノードの位置を推定した場合における固定ノードの通信範囲と、位置推定誤差との関係を示すグラフである。
【図１４】固定ノードの位置推定誤差と、図７に示すトポロジ矛盾判定部により計算される領域判定値との関係を示すグラフである。
【図１５】図１に示す固定ノードのカバレッジの一例を示す図である。
【図１６】図１に示す固定ノードの仮想的なカバレッジの一例を示す図である。
【図１７】図７に示す仮想トポロジ生成部の動作を示すフローチャートである。
【図１８】図７に示す仮想トポロジ生成部の動作を示すフローチャートである。
【図１９】図１８に示すステップＳ１１６で使用される確率分布関数の一例を示すグラフである。
【図２０】図１８に示すステップＳ１１６で使用される確率分布関数の一例を示すグラフである。
【図２１】図６に示す移動ノード位置推定部の動作を示すフローチャートである。
【図２２】図１に示す移動ノードと固定ノードとの位置関係の一例を示す図である。
【図２３】図１に示す移動ノードの位置の変化の一例を示す図である。
【図２４】図１に示す固定ノード及び無線ノードの位置推定のシミュレーション結果を示すグラフである。
【図２５】図１に示す位置推定装置の構成の他の例を示す機能ブロック図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００２３】
［１．全体構成］
［１．１．無線ネットワークの構成］
図１は、本発明の実施の形態に係る無線ネットワーク１０の構成を示す概略図である。図１に示すように、無線ネットワーク１０は、固定無線ノードＮ−１，Ｎ−２，・・・，Ｎ−ｋと、移動無線ノードＭ−１，Ｍ−２，・・・，Ｍ−ｐと、シンク４と、位置推定装置５とを備える。ｋは４以上の整数であり、ｐは１以上の整数である。
【００２４】
図１では、固定無線ノードの一部と、移動無線ノードの一部に対する符号の表示を省略している。また、固定無線ノードの一部と、移動無線ノードの一部とが、通知パケットＤＴＧをシンク４に送信している様子を図示しているが、他の固定無線ノード及び移動無線ノードも、通知パケットＤＴＧをシンク４に送信する。通知パケットＤＴＧの詳細については、後述する。
【００２５】
以下の説明において、「固定無線ノード」を「固定ノード」と記載し、「移動無線ノード」を「移動ノード」と記載する。また、固定ノードＮ−１〜Ｎ−ｋ及び移動ノードＭ−１〜Ｍ−ｐを総称する場合、「無線ノード」と記載する。
【００２６】
無線ノード及びシンク４は、近距離無線通信を行うことにより、無線ネットワーク１０を構成する。無線ノード及びシンク４は、例えば、近距離無線通信として、例えば、ＢＬＥ（Bluetooth（登録商標）Low Energy）や、ＩＥＥＥ８０２．１５．４などの通信規格に準拠した無線通信を行う。
【００２７】
固定ノードＮ−１〜Ｎ−ｋは、無線通信空間（例えば、ショッピングセンターや駅などの商業施設など）に配置される。固定ノードＮ−１〜Ｎ−ｋは、例えば、センサを搭載したセンシングデバイスである。固定ノードＮ−１〜Ｎ−ｋの各々に搭載されたセンサは、温度、湿度などを検出し、これらの検出値を無線通信によってシンク４に送信する。
【００２８】
固定ノードＮ−１〜Ｎ−ｋのうち３個の固定ノードは、絶対位置が予め指定されたアンカーノードである。絶対位置は、例えば、緯度及び経度によって指定される。
【００２９】
移動ノードＭ−１〜Ｍ−ｋは、例えば、スマートフォン、携帯電話、タブレット型端末などの移動通信端末である。また、無線ノードＭ−１〜Ｍ−ｋは、後述するように、加速度センサを備えており、加速度を計測する。
【００３０】
無線ノードの各々は、自己の識別情報（例えば、アドレス）を含む広告パケットを生成し、その生成した広告パケットをブロードキャストする。そして、無線ノードの各々は、他の無線ノードから広告パケットを受信した場合、その受信した広告パケットを復調し、復調した広告パケットに含まれる識別情報を検出する。
【００３１】
図２は、移動ノードＭ−１において生成される隣接ノード情報２１Ｍの一例を示す図である。図２に示すように、隣接ノード情報２１Ｍは、自己の識別情報と、移動ノードＭ−１において検出された加速度と、受信した広告パケットから検出した他の無線ノードの識別情報とを記録したデータである。
【００３２】
隣接ノード情報２１Ｍにおいて、移動ノードＭ−１の識別情報が、「Ａｄｄｒｅｓｓ  Ｍ−１」であり、移動ノードＭ−１で検出された加速度は、２．０（ｍ／ｓｅｃ２）である。また、隣接ノードの欄には、他の無線ノードから受信した広告パケットから検出された識別情報が記録される。具体的には、固定ノードＮ−１の識別情報「Ａｄｄｒｅｓｓ  Ｎ−１」と、固定ノードＮ−５の識別情報「Ａｄｄｒｅｓｓ  Ｎ−５」と、移動ノードＭ−２の識別情報「Ａｄｄｒｅｓｓ  Ｍ−２」とが記載されている。
【００３３】
移動ノードＭ−１以外の無線ノードも、図２に示す隣接ノード情報２１Ｍと同様の隣接ノード情報を生成する。つまり、全ての固定ノード及び移動ノードは、隣接ノード情報を生成する。ただし、固定ノードの各々は、加速度センサを備えていないため、固定ノードの各々により生成される隣接ノード情報は、加速度を含まない。
【００３４】
このように、無線ノードの各々は、少なくとも、自己の識別情報と、受信した広告パケットから検出した他の無線ノードの識別情報とを記録した隣接ノード情報を生成する。無線ノードの各々は、生成した隣接ノード情報を含む通知パケットＤＴＧを生成してシンク４へ送信する。隣接ノード情報は、無線ノードの各々が他の無線ノードから直接受信した広告パケットから検出した識別情報を含む。つまり、隣接ノード情報は、無線ノードの各々から１ホップの位置に存在する無線ノードの情報を含む。１ホップとは、２つの無線ノードが他の無線ノードを介することなく通信することを示す。
【００３５】
なお、図１において、無線ノードの一部が通知パケットＤＴＧをシンク４に直接送信するように図示している。しかし、無線ノードが、通知パケットＤＴＧをシンク４に直接送信できない場合がある。この場合、通知パケットＤＴＧは、マルチホップで無線ノードからシンク４へ送信される。マルチホップとは、２つの無線ノードが他の無線ノードを介して通信することを示す。例えば、２ホップは、２つの無線ノードを中継する他の無線ノードの数が１つであることを意味する。つまり、通知パケットＤＴＧが、無線ノードからシンク４へ送信される場合、通知パケットＤＴＧの通信経路は特に限定されない。シンク４は、各無線ノードから送信される通知パケットＤＴＧを受信することができればよい。
【００３６】
シンク４は、無線ノードの各々から通知パケットＤＴＧを受信し、その受信した通知パケットＤＴＧから隣接ノード情報を検出する。シンク４は、その検出した隣接ノード情報を位置推定装置５へ送信する。
【００３７】
位置推定装置５は、例えば、クラウド上に設置され、シンク４から隣接ノード情報を受信する。これによって、位置推定装置５は、無線ノードの全てから隣接ノード情報を取得し、その取得した隣接ノード情報に基づいて、無線ノードの各々の位置を推定する。
【００３８】
位置推定装置５は、固定ノードの各々の隣接ノード情報を用いて、固定ノードＮ−１〜Ｎ−ｋの配置関係を示すトポロジ（以下、「固定トポロジ」と記載する。）を作成する。その後、位置推定装置５は、その作成した固定トポロジに基づいて、後述する方法によって固定ノードＮ−１〜Ｎ−ｋの位置を推定する。固定ノードの各々の位置を推定した後に、位置推定装置５は、後述する方法によって、移動ノードＭ−１〜Ｍ−ｋの位置を推定する。詳細については後述するが、固定ノードの位置推定と、移動ノードの位置推定では、位置を推定する処理の一部が異なる。
【００３９】
無線ノードの各々において、広告パケットは、予め設定された時間間隔でブロードキャストされる。無線ノードの各々は、隣接ノード情報を含む通知パケットＤＴＧを定期的に送信する。これにより、位置推定装置５は、各無線ノードから隣接ノード情報を定期的に取得することができるため、固定ノードＮ−１〜Ｎ−ｋ及び移動ノードＭ−１〜Ｍ−ｐの位置推定を繰り返し行う。固定ノードＮ−１〜Ｎ−ｋの位置推定を行う時間間隔は、移動ノードＭ−１〜Ｍ−ｋの位置推定を行う時間間隔よりも長く設定される。
【００４０】
［１．２．固定ノードの構成］
図３は、図１に示す固定ノードＮ−１の構成を示す機能ブロック図である。図３に示すように、固定ノードＮ−１は、アンテナ１１と、送受信部１２と、制御部１３とを含む。
【００４１】
送受信部１２は、アンテナ１１を介して広告パケットを受信し、その受信した広告パケットを制御部１３へ出力する。また、送受信部１２は、固定ノードＮ−１の識別情報を含む広告パケットを制御部１３から受けた場合、その受けた広告パケットをアンテナ１１を介してブロードキャストする。送受信部１２は、隣接ノード情報を含む通知パケットＤＴＧを制御部１３から受けると、その受けた通知パケットＤＴＧの宛先をシンク４に設定し、宛先がシンク４に設定された通知パケットＤＴＧをアンテナ１１を介して送出する。
【００４２】
制御部１３は、固定ノードＮ−１の識別情報を予め保持している。制御部１３は、固定ノードＮ−１の識別情報を含む広告パケットを生成し、その生成した広告パケットを送受信部１２へ出力する。
【００４３】
制御部１３は、送受信部１２から広告パケットを受けると、その受けた広告パケットから、他の無線ノードの識別情報を検出する。例えば、固定ノードＮ−１が固定ノードＮ−２、Ｎ−４及び移動ノードＭ−３から広告パケットを受信した場合、制御部１３は、受信した３個のパケットからそれぞれ、固定ノードＮ−２の識別情報、固定ノードＮ−４の識別情報、移動ノードＭ−３の識別情報を検出する。そして、制御部１３は、固定ノードＮ−２の識別情報と、固定ノードＮ−４の識別情報と、移動ノードＭ−３の識別情報とを、自己（固定ノードＮ−１）の識別情報に対応付けた隣接ノード情報を生成する。制御部１３は、その生成した隣接ノード情報を含む通知パケットＤＴＧを生成して送受信部１２へ出力する。
【００４４】
なお、図１に示す固定ノードＮ−２〜Ｎ−ｋの構成は、図３に示す固定ノードＮ−１の構成と同じである。
【００４５】
［１．３．移動ノードの構成］
図４は、図１に示す移動ノードＭ−１の構成を示す機能ブロック図である。図４に示すように、移動ノードＭ−１は、アンテナ２１と、送受信部２２と、制御部２３と、加速度センサ２４とを含む。
【００４６】
送受信部２２は、アンテナ２１を介して広告パケットを受信し、その受信した広告パケットを制御部２３へ出力する。また、送受信部２２は、移動ノードＭ−１の識別情報を含む広告パケットを制御部２３から受けた場合、その受けた広告パケットをアンテナ２１を介してブロードキャストする。送受信部２２は、隣接ノード情報２１Ｍを含む通知パケットＤＴＧを制御部２３から受けると、その受けた通知パケットＤＴＧをアンテナ１１を介してシンク４へ送信する。
【００４７】
制御部２３は、移動ノードＭ−１の識別情報を予め保持している。制御部１３は、移動ノードＭ−１の識別情報を含む広告パケットを生成し、その生成した広告パケットを送受信部２２へ出力する。
【００４８】
制御部２３は、送受信部２２から広告パケットを受けると、その受けた広告パケットから、他の無線ノードの識別情報を検出する。固定ノードＮ−１、固定ノードＮ−５、移動ノードＭ−２から広告パケットを受信した場合、制御部２３は、受信した３個のパケットからそれぞれ、固定ノードＮ−１の識別情報、固定ノードＮ−５の識別情報、移動ノードＭ−２の識別情報を取得する。また、制御部２３は、加速度センサ２４により検出された加速度を取得する。制御部２３は、固定ノードＮ−１の識別情報と、固定ノードＮ−５の識別情報と、移動ノードＭ−２の識別情報と、加速度センサ２４から取得した加速度を用いて、図２に示す隣接ノード情報２１Ｍを生成する。制御部２３は、その生成した隣接ノード情報を含む通知パケットＤＴＧを生成して送受信部２２へ出力する。
【００４９】
［１．４．シンク４の構成］
図５は、図１に示すシンク４の構成を示す機能ブロック図である。図５に示すように、シンク４は、アンテナ４１と、送受信部４２と、制御部４３とを含む。
【００５０】
送受信部４２は、アンテナ４１を介して通知パケットＤＴＧを受信し、その受信した通知パケットＤＴＧを制御部４３へ出力する。また、送受信部４２は、制御部４３から隣接ノード情報を受けると、その受けた隣接ノード情報をアンテナ４１及び図示しないインターネットを介して位置推定装置５へ送信する。
【００５１】
制御部４３は、送受信部４２から通知パケットＤＴＧを受けると、その受けた通知パケットＤＴＧから隣接ノード情報を検出し、その検出した隣接ノード情報を送受信部４２へ出力する。
【００５２】
［１．５．位置推定装置５の構成］
図６は、図１に示す位置推定装置５の構成を示す機能ブロック図である。図６に示すように、位置推定装置５は、取得部５１と、分類部５２と、固定ノード位置推定部６０と、移動ノード位置推定部７０とを備える。
【００５３】
取得部５１は、シンク４からインターネットを介して各無線ノードの隣接ノード情報を受信することにより、各無線ノードの隣接ノード情報を取得する。取得部５１は、その受信した隣接ノード情報を分類部５２へ出力する。
【００５４】
分類部５２は、取得部５１から各無線ノードの隣接ノード情報を受ける。分類部５２は、その受けた隣接ノード情報を、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報と、移動ノードＭ−１〜Ｍ−ｐの隣接ノード情報とに分類する。分類部５２は、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報を固定ノード位置推定部６０に出力する。また、分類部５２は、移動ノードＭ−１〜Ｍ−ｐの隣接ノード情報と、固定ノードＮ−１〜Ｎ−ｋのうち所定の条件を満たす固定ノードの隣接ノード情報とを移動ノード位置推定部７０に出力する。
【００５５】
固定ノード位置推定部６０は、分類部５２から固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報を受け、その受けた隣接ノード情報に基づいて、固定ノードＮ−１〜Ｎ−ｋの配置関係を示す固定トポロジを生成する。固定ノード位置推定部６０は、その生成した固定トポロジに基づいて、固定ノードＮ−１〜Ｎ−ｋの位置を推定して、固定ノードＮ−１〜Ｎ−ｋの推定位置を取得する。固定ノード位置推定部６０は、取得した固定ノードＮ−１〜Ｎ−ｋの推定位置を絶対位置に変換する。
【００５６】
また、固定ノード位置推定部６０は、移動ノードＭ−ｕ（ｕは１以上ｐ以下の整数）の隣接ノード情報が移動ノードＭ−ｕの位置の推定に用いられた後に、移動ノードＭ−ｕの隣接ノード情報を仮想的な固定ノードの隣接ノード情報として、移動ノード位置推定部７０から取得する。
【００５７】
固定ノード位置推定部６０は、再び固定ノードＮ−１〜Ｎ−ｋの位置を推定する際に、移動ノード位置推定部７０から取得した移動ノードＭ−ｕの隣接ノード情報を、仮想的な固定ノードの隣接ノード情報として使用する。
【００５８】
移動ノード位置推定部７０は、分類部５２から移動ノードＭ−１〜Ｍ−ｐの隣接ノード情報を受け、固定ノード位置推定部６０から固定ノードＮ−１〜Ｎ−ｋのうち一部の固定ノードの推定位置を受ける。移動ノード位置推定部７０は、その受けた隣接ノード情報と、その受けた固定ノードの推定位置とに基づいて、移動ノードＭ−１〜Ｍ−ｐの推定位置を取得する。移動ノード位置推定部７０は、移動ノードＭ−１〜Ｍ−ｐの推定位置を絶対位置に変換する。また、移動ノード位置推定部７０は、移動ノードＭ−ｕの位置を推定した後に、位置の推定に用いた移動ノードＭ−ｕの隣接ノード情報を、固定ノード位置推定部６０に出力する。
【００５９】
［１．６．固定ノード位置推定部６０の構成］
図７は、図６に示す固定ノード位置推定部６０の構成を示す機能ブロック図である。図７に示すように、固定ノード位置推定部６０は、固定トポロジ生成部６１と、自己位置生成部６２と、位置更新部６３と、変換部６４と、トポロジ矛盾判定部６５と、仮想トポロジ生成部６６とを含む。
【００６０】
固定トポロジ生成部６１は、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報を分類部５２から受け、その受けた隣接ノード情報に基づいて、固定トポロジを生成する。固定トポロジは、固定ノードＮ−１〜Ｎ−ｋの配置関係を示し、固定ノードＮ−１〜Ｎ−ｋの各々に対して生成される。固定トポロジ生成部６１は、その生成したトポロジを位置更新部６３へ出力する。
【００６１】
また、固定トポロジ生成部６１は、移動ノード位置推定部７０から移動ノードの隣接ノード情報を受けた場合、その受けた移動ノードの隣接ノード情報を、仮想的な固定ノードの隣接ノード情報として、固定トポロジの生成に使用する。
【００６２】
なお、以下の説明では、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報を使用し、仮想的な固定ノードの隣接ノード情報を使用しない場合を例に説明する。
【００６３】
自己位置生成部６２は、分類部５２から固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報を受け、その受けた隣接ノード情報に基づいて、無線ネットワーク１０を構成する固定ノードＮ−１〜Ｎ−ｋを認識する。自己位置生成部６２は、その認識した固定ノードＮ−１〜Ｎ−ｋの仮の自己位置をランダムに生成する。
【００６４】
位置更新部６３は、固定トポロジ生成部６１から固定トポロジを受け、自己位置生成部６２から固定ノードＮ−１〜Ｎ−ｋの仮の自己位置を受ける。位置更新部６３は、その受けた固定トポロジ及び仮の自己位置に基づいて、後述する方法によって、固定ノードＮ−１〜Ｎ−ｋの仮の自己位置を更新することにより、固定ノードＮ−１〜Ｎ−ｋの相対推定位置を取得する。
【００６５】
位置更新部６３は、固定ノードＮ−１〜Ｎ−ｋの相対推定位置を変換部６４へ出力した後、仮想トポロジ及び仮想隣接ノード情報を仮想トポロジ生成部６６から受ける。仮想トポロジ及び仮想隣接ノード情報の詳細については、後述する。位置更新部６３は、その受けた仮想トポロジ及び仮想隣接ノード情報を用いて、後述する方法によって固定ノードＮ−１〜Ｎ−ｋの相対推定位置を再び取得する。
【００６６】
変換部６４は、アンカーノードの絶対位置を予め保持している。変換部６４は、固定ノードＮ−１〜Ｎ−ｋの相対推定位置を位置更新部６３から受ける。変換部６４は、その受けた相対推定位置とアンカーノードの絶対位置とに基づいて、後述する方法によって固定ノードＮ−１〜Ｎ−ｋの相対推定位置を絶対位置に変換する。変換部６４は、その変換した固定ノードＮ−１〜Ｎ−ｋの絶対位置をトポロジ矛盾判定部６５及び仮想トポロジ生成部６６へ出力する。
【００６７】
トポロジ矛盾判定部６５は、固定ノードＮ−１〜Ｎ−ｋの絶対位置を変換部６４から受け、その受けた固定ノードＮ−１〜Ｎ−ｋの絶対位置に基づいて、各固定ノードにおけるトポロジ矛盾の有無を判定し、トポロジ矛盾の発生頻度を示す領域判定値ＶＴ＿ＡＶＥを計算する。また、トポロジ矛盾判定部６５は、後述する仮想トポロジに基づく固定ノードＮ−１〜Ｎ−ｋの絶対位置に基づいて、仮想トポロジに対応する領域判定値ＶＴ＿ＡＶＥを計算する。すなわち、領域判定値ＶＴ＿ＡＶＥは、トポロジごとに計算される。トポロジ矛盾の有無の判定方法及び領域判定値ＶＴ＿ＡＶＥの計算方法については、後述する。
【００６８】
仮想トポロジ生成部６６は、トポロジ矛盾判定部６５から領域判定値ＶＴ＿ＡＶＥを受け、その受けた領域判定値ＶＴ＿ＡＶＥに対応する相対推定位置及び絶対位置を変換部６４から取得する。
【００６９】
仮想トポロジ生成部６６は、その受けた領域判定値ＶＴ＿ＡＶＥに基づいて、固定ノードＮ−１〜Ｎ−ｋの無線通信距離を仮想的に変更する。仮想トポロジ生成部６６は、その変更した仮想的な無線通信距離と固定ノードＮ−１〜Ｎ−ｋの絶対位置とに基づいて、仮想的な１次近傍ノードを固定ノードＮ−１〜Ｎ−ｋの各々に対して決定し、仮想隣接ノード情報を生成する。仮想隣接ノード情報は、固定ノードＮ−１〜Ｎ−ｋの各々について生成され、固定ノードＮ−１〜Ｎ−ｋの各々の仮想的な１次近傍ノードを示す。仮想トポロジ生成部６６は、生成した仮想隣接ノード情報に基づいて、後述する方法によって固定ノードＮ−１〜Ｎ−ｋの各々の仮想トポロジを生成する。仮想トポロジは、少なくとも１つ生成される。仮想トポロジ生成部６６は、その生成した仮想トポロジを位置更新部６３へ出力する。
【００７０】
仮想トポロジ生成部６６は、固定トポロジに対応する領域判定値ＶＴ＿ＡＶＥと、少なくとも１つの仮想トポロジの各々に対応する領域判定値ＶＴ＿ＡＶＥとを比較する。仮想トポロジ生成部６６は、その比較結果に基づいて、固定トポロジに基づく固定ノードの絶対位置と、少なくとも１つの仮想トポロジの各々に基づく固定ノードの絶対位置とのうちいずれかを、固定ノードの位置推定結果として出力する。また、仮想トポロジ生成部６６は、位置推定結果として出力された固定ノードの絶対位置に対応する固定ノードの相対推定位置を、移動ノード位置推定部７０へ出力する。
【００７１】
［１．７．移動ノード位置推定部７０の構成］
図８は、図６に示す移動ノード位置推定部７０の構成を示す機能ブロック図である。図７に示すように、移動ノード位置推定部７０は、移動トポロジ生成部７１と、自己位置生成部７２と、位置更新部７３と、変換部７４とを含む。
【００７２】
移動トポロジ生成部７１は、移動ノードＭ−１〜Ｍ−ｐの隣接ノード情報を取得し、移動ノードＭ−１〜Ｍ−ｐの中から、位置推定の対象となる移動ノードＭ−ｕ（ｕは１以上ｐ以下の整数）を選択する。移動トポロジ生成部７１は、移動ノードＭ−ｕの隣接ノード情報に記録されている固定ノードを特定し、特定した固定ノードの隣接ノード情報を分類部５２から取得する。移動トポロジ生成部７１は、移動ノードＭ−ｕの隣接ノード情報と、特定した固定ノードの隣接ノード情報とに基づいて、移動ノードＭ−ｕのトポロジ（移動トポロジ）を生成する。
【００７３】
また、移動トポロジ生成部７１は、移動ノードＭ−ｕの位置推定が終了した後に、移動ノードＭ−ｕの隣接ノード情報を固定ノード位置推定部６０に出力する。この移動ノードＭ−ｕの隣接ノード情報は、仮想的な固定ノードの隣接ノード情報として用いられる。
【００７４】
自己位置生成部７２は、移動ノードＭ−ｕの仮の自己位置をランダムに生成する。
【００７５】
位置更新部７３は、移動ノードＭ−ｕの移動トポロジを移動トポロジ生成部７１から受け、移動ノードＭ−ｕの仮の自己位置を自己位置生成部７２から受ける。位置更新部７３は、その受けた移動トポロジ及び仮の自己位置に基づいて、後述する方法によって、移動ノードＭ−ｕの仮の自己位置を更新することにより、移動ノードＭ−ｕの相対推定位置を取得する。
【００７６】
変換部７４は、アンカーノードの絶対位置を予め保持している。変換部７４は、移動ノードＭ−ｕの相対推定位置を位置更新部７３から受ける。変換部７４は、変換部６４（図７参照）と同様に、その受けた移動ノードＭ−ｕの相対推定位置とアンカーノードの絶対位置とに基づいて、後述する方法によって移動ノードＭ−ｕの相対推定位置を絶対位置に変換する。変換部７４は、その変換した移動ノードＭ−ｕの絶対位置を、移動ノードＭ−ｕの位置推定結果として出力する。
【００７７】
［２．位置推定装置５の動作の概略］
図９は、位置推定装置５の基本的な動作を示すフローチャートである。無線ノードの位置推定が開始された場合、取得部５１が、無線ノードの各々の隣接ノード情報をシンク４から受ける。分類部５２は、全ての無線ノードの隣接ノード情報を取得部５１から取得する（ステップＳ１）。
【００７８】
分類部５２は、その取得した隣接ノード情報を、固定ノードの隣接ノード情報と、移動ノードの隣接ノード情報とに分類する（ステップＳ２）。分類部５２は、例えば、分類対象の隣接ノード情報が加速度を含まない場合、その隣接ノード情報を固定ノードの隣接ノード情報に分類し、分類対象の隣接ノード情報が加速度を含む場合、その隣接ノード情報を移動ノードの隣接ノード情報に分類する。
【００７９】
なお、隣接ノード情報の分類条件は、上記に限定しなくてもよい。例えば、固定ノードの識別情報と移動ノードの識別情報とが予め分類部５２に設定されている場合、分類部５２は、隣接ノード情報に含まれる自己の識別情報に基づいて、隣接ノード情報を分類してもよい。
【００８０】
また、分類部５２は、予め設定された閾値よりも大きい加速度を含む隣接ノード情報を移動ノードの隣接ノード情報に分類し、閾値以下の加速度を含む隣接ノード情報を固定ノードの隣接ノード情報に分類してもよい。この場合、移動ノードＭ−１〜Ｍ−ｋが、固定ノードとして扱われる場合が発生する。
【００８１】
本実施の形態では、説明の便宜上、無線ノードが固定ノードから移動ノードに変化したり、移動ノードから固定ノードに変化したりする場合がないものとして説明する。なお、移動ノードの隣接ノード情報が事後的に仮想的な固定ノードの隣接ノード情報として扱われる場合が存在するが、これについては、別途説明する。
【００８２】
固定ノード位置推定部６０は、分類部５２から受けた固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報に基づいて、固定ノードＮ−１〜Ｎ−ｋの位置を推定し、相対推定値を取得する（ステップＳ３）。固定ノード位置推定部６０は、固定ノードＮ−１〜Ｎ−ｋの相対推定位置を絶対位置に変換する。
【００８３】
移動ノード位置推定部７０は、分類部５２から移動ノードの隣接ノード情報を受け、固定ノード位置推定部６０から固定ノードＮ−１〜Ｎ−ｋの相対推定位置を受ける。移動ノード位置推定部７０は、移動ノードの隣接ノード情報及び固定ノードＮ−１〜Ｎ−ｋの相対推定位置に基づいて、移動ノードＭ−１〜Ｍ−ｐの位置を推定する（ステップＳ４）。
【００８４】
ステップＳ４において、移動ノード位置推定部７０は、移動ノードＭ−ｕ（ｕは、１以上ｐ以下の整数）の位置を推定する際に、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報のうち、移動ノードＭ−ｕの１次近傍固定ノードの隣接ノード情報を使用する。移動ノードＭ−ｕの１次近傍固定ノードに該当しない固定ノードの隣接ノード情報は、移動ノードＭ−ｕの位置推定に使用されない。つまり、移動ノード位置推定部７０は、移動ノードＭ−ｕの位置を推定する際に、移動ノードＭ−ｕから２ホップ以内の距離にある固定ノードに関する情報を用いる。従って、移動ノードＭ−ｕの位置は、固定ノードＮ−１〜Ｎ−ｋの位置推定と比べて、局所的な範囲内で推定される。
【００８５】
各無線ノードは、隣接ノード情報を含む通知パケットＤＴＧを定期的に送信する。分類部５２は、新たな隣接ノード情報を取得部５１から取得した場合、無線ノードの位置推定に用いられる隣接ノード情報を更新する。このため、位置推定装置５は、ステップＳ３〜Ｓ７を繰り返すことにより、固定ノードの推定位置及び移動ノードの推定位置を定期的に更新する。
【００８６】
具体的には、移動ノードの位置推定（ステップＳ４）の後に、位置推定装置５は、固定ノードの位置更新タイミングであるか否かを判断する（ステップＳ５）。固定ノードの位置更新タイミングは、例えば、２０秒おきに設定される。固定ノードの位置更新タイミングである場合（ステップＳ５においてＹｅｓ）、固定ノード位置推定部６０は、分類部５２により更新された隣接ノード情報に基づいて、固定ノードの位置を再び推定する（ステップＳ３）。
【００８７】
固定ノードの位置更新タイミングでない場合（ステップＳ５においてＮｏ）、位置推定装置５は、移動ノードの位置更新タイミングであるか否かを判断する（ステップＳ６）。移動ノードの位置更新タイミングは、例えば、５秒おきに設定される。つまり、移動ノードの推定位置の更新頻度は、固定ノードの推定位置の更新頻度よりも高い。これは、移動ノードの推定位置を、移動ノードの実際に移動に合わせてリアルタイムで追随させる必要があるためである。
【００８８】
移動ノード位置推定部７０は、移動ノードの位置更新タイミングである場合（ステップＳ６においてＹｅｓ）、分類部５２により更新された隣接ノード情報に基づいて、移動ノードの位置推定を再び行う（ステップＳ４）。
【００８９】
位置推定装置５は、移動ノードの位置更新タイミングでない場合（ステップＳ６においてＮｏ）、位置推定処理を終了するか否かを判断する（ステップＳ７）。位置推定処理を継続する場合（ステップＳ７においてＮｏ）、位置推定装置５は、ステップＳ５の処理に戻る。一方、位置推定処理を終了する場合（ステップＳ７においてＹｅｓ）、位置推定装置５は、図９に示す処理を終了する。
【００９０】
［３．固定ノードの位置推定処理（ステップＳ３）］
図１０は、固定ノード位置推定部６０の動作を示すフローチャートである。以下、図１０を参照しながら、固定ノードＮ−１〜Ｎ−ｋの位置を推定する処理（ステップＳ３）について詳しく説明する。
【００９１】
［３．１．トポロジの生成］
固定ノード位置推定部６０は、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報を分類部５２から取得する（ステップＳ３１）。
【００９２】
固定トポロジ生成部６１は、ステップＳ３１で取得した隣接ノード情報に基づいて、各固定ノードに対応する固定トポロジを生成し（ステップＳ３２）、その生成した固定トポロジを位置更新部６３へ出力する。
【００９３】
具体的には、固定トポロジ生成部６１は、以下の（１）〜（３）の処理を実行して、各固定ノードに対応する固定トポロジを生成する。以下の説明において、ｉは、１以上ｋ以下の整数である。
（１）固定ノードＮ−ｉの隣接ノード情報に含まれる固定ノードを固定ノードＮ−ｉの１次近傍ノードＮ−ｊ（ｊは、ｉ≠ｊを満たし、１以上ｋ以下の整数）とする。
（２）１次近傍ノードＮ−ｊの隣接ノード情報に含まれる固定ノードで、固定ノードＮ−ｉの隣接ノード情報に含まれない固定ノードを、固定ノードＮ−ｊを中継ノードとする固定ノードＮ−ｉの２次近傍ノードとする。
（３）同様に、ｎ次近傍ノードの隣接ノード情報に含まれる固定ノードで、（ｎ−１）次までの近傍ノード群の隣接ノード情報に含まれない固定ノードを、ｎ次近傍ノードを中継ノードとする固定ノードＮ−ｉの（ｎ＋１）次近傍ノードとする。ここで、ｎは、３以上であることが望ましい。
（４）上記（１）〜（３）を再帰的に繰り返すことにより、無線ネットワーク１０における固定ノードＮ−ｉの多次近傍ノードを設定する。このようにして設定された固定ノードＮ−ｉの多次近傍ノードが、固定ノードＮ−ｉの固定トポロジに相当する。
【００９４】
固定トポロジ生成部６１は、上記（１）〜（４）を固定ノードＮ−１〜Ｎ−ｋの各々について実行し、固定ノードＮ−１〜Ｎ−ｋの各々についての固定トポロジを生成する。
【００９５】
［３．２．通信距離の設定（ステップＳ３３）］
位置更新部６３は、各固定ノードの固定トポロジを参照して、各固定ノード間の距離をホップ数を用いて設定する（ステップＳ３３）。
【００９６】
以下、ステップＳ３３を詳しく説明する。固定トポロジの生成において説明したように、固定ノードＮ−ｉに対応する固定トポロジは、固定ノードＮ−ｉのｎ次近傍ノードを示す情報である。固定トポロジは、固定ノードＮ−ｉを基準にした多次近傍ノードのホップ数に基づいて構成されている。従って、１ホップの固定ノード間の距離を一定距離ｄとした場合、位置更新部６３は、固定ノードＮ−ｉからｎ次近傍ノードまでの距離を、一定距離ｄとホップ数ｎとの乗算値（一定距離ｄ×ホップ数ｎ＝ｎｄ）を計算することにより設定する。
【００９７】
［３．３．固定ノードの位置推定（ステップＳ３４〜Ｓ３６）］
次に、固定ノード位置推定部６０は、ステップＳ３４〜Ｓ３６を実行して、各固定ノードの絶対位置の１回目の推定を行う。１回目の推定では、ステップＳ２で生成された固定トポロジが用いられる。２回目以降の推定では、ステップＳ３８で生成された仮想トポロジが用いられる。固定トポロジ及び仮想トポロジのいずれを用いる場合であっても、各固定ノードの位置推定処理は同じである。
【００９８】
ここでは、ステップＳ３２で生成された固定トポロジに基づく位置推定について詳しく説明する。
【００９９】
（仮の自己位置の設定）
自己位置生成部６２は、ステップＳ３１で取得された隣接ノード情報に基づいて、無線ネットワーク１０を構成する固定ノードＮ−１〜Ｎ−ｋを認識する。自己位置生成部６２は、その認識した固定ノードＮ−１〜Ｎ−ｋの仮の自己位置ｗｉ（ｔ）をランダムに生成する（ステップＳ３４）。仮の自己位置は、所定の２次元座標上に設定される。仮の自己位置ｗｉ（ｔ）において、ｉは、１以上ｋ以下の整数であり、固定ノードＮ−１〜Ｎ−ｋのいずれかを示す。ｔは、仮の自己位置の更新回数を示す。
【０１００】
（仮の自己位置の更新）
位置更新部６３は、自己位置生成部６２により生成された固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を取得し、その取得した仮の自己位置を所定の更新回数で更新する（ステップＳ３５）。所定の更新回数で更新された後の仮の自己位置が、固定ノードＮ−ｉの相対推定位置として決定される。
【０１０１】
具体的には、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）は、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）とｎ次近傍ノードの仮の自己位置ｗｎ（ｔ）とを用いて計算された距離｜ｗｉ（ｔ）−ｗｎ（ｔ）｜が固定ノードＮ−ｉからｎ次近傍ノードまでのホップ数からなる距離ｎｄに近づくように修正される。
【０１０２】
ｎ次近傍ノードの仮の自己位置ｗｎ（ｔ）を用いて固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を修正するときのｎ次修正ベクトルは、式（１）によって求められる。
【０１０３】
【数１】
0006532606.tif 000002
【０１０４】
また、位置更新部６３は、仮の自己位置の更新の初期段階においては、広い範囲の近傍ノードを使用する。そして、位置更新部６３は、仮の自己位置の更新の進行に伴い、更新に使用する近傍ノードのホップ数を減少させて、局所的かつ詳細なトポロジを用いて更新を収束させる。
【０１０５】
従って、次式（２）に従って固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新する。
【０１０６】
【数２】
0006532606.tif 000003
【０１０７】
式（２）において、τｎは、ホップ数ｎにおける更新終了の閾値を示し、τｎ−１は、ホップ数ｎにおける更新開始の閾値を示す。また、式（２）において、αｉ（ｔ）は、ｔ回目の修正における固定ノードＮ−ｉの学習関数であり、次式（３）によって決定される。
【０１０８】
【数３】
0006532606.tif 000004
【０１０９】
式（３）において、ηは、正の減衰定数である。また、学習関数αｉ（ｔ）の初期値αｉ（０）は、１である。
【０１１０】
最大ホップ数から３ホップまでは、更新回数を均等とし、２ホップは、局所的な位置推定を行うため、他のホップ数における更新回数の２倍の割合として、最大ホップ数から降順に更新開始及び更新終了の閾値を設定する。
【０１１１】
そして、位置更新部６３は、式（２）の右辺の最上段の修正ベクトルから最下段の修正ベクトルまでを順次適用することにより、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新する。
【０１１２】
式（２）の右辺の最上段の修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛ｎ｝（ｔ））は、１次修正ベクトルとｎ次修正ベクトルとの和からなる。式（２）の右辺の上から２番目の修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛ｎ−１｝（ｔ））は、１次修正ベクトルと（ｎ−１）次修正ベクトルとの和からなる。以下同様にして、式（２）の右辺の下から２番目の修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛３｝（ｔ））は、１次修正ベクトルと３次修正ベクトルとの和からなる。式（２）の右辺の最下段の修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛２｝（ｔ））は、１次修正ベクトルと２次修正ベクトルとの和からなる。
【０１１３】
従って、位置更新部６３は、固定ノードＮ−ｉの１次近傍ノードとｎ次近傍ノードとを用いて固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新し、その後、固定ノードＮ−ｉの１次近傍ノードと（ｎ−１）次近傍ノードとを用いて固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新し、以下、同様にして、固定ノードＮ−ｉの１次近傍ノードと３次近傍ノードとを用いて固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新し、最終的に、固定ノードＮ−ｉの１次近傍ノードと２次近傍ノードとを用いて固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新する。
【０１１４】
これによって、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を大局的から局所的に更新でき、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を一定の位置に収束させることができる。
【０１１５】
例えば、１０次修正ベクトル（ｎ＝１０）までを用いて固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）を更新する場合、修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛１０｝（ｔ））、（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛９｝（ｔ））、・・・、（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛３｝（ｔ））を用いた更新回数を１回とすれば、修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛２｝（ｔ））を用いた更新回数は、２回である。その結果、全ての修正ベクトルを用いた更新回数は、１０回となる。つまり、修正ベクトル（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛１０｝（ｔ））、（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛９｝（ｔ））、・・・、（Ｖｉ｛１｝（ｔ）＋Ｖｉ｛３｝（ｔ））を用いた更新回数をｐ（ｐは整数）回とすれば、全ての修正ベクトルを用いた更新回数は、一般的には、８ｐ＋２ｐ＝１０ｐ回となる。
【０１１６】
更新回数１０ｐにおける”１０”は、ｎ次修正ベクトルのｎ＝１０に等しいので、式（２）の右辺における全ての修正ベクトルを用いた更新回数は、一般的には、ｎｐ回となる。従って、式（２）を用いた仮の自己位置ｗｉ（ｔ）の更新回数は、ｎを決定し、その後、ｐを決定することにより決定される。
【０１１７】
（絶対座標への変換）
変換部６４は、ステップＳ３５によって得られた各固定ノードの相対推定位置（更新が完了した固定ノードの仮の自己位置Ｗｉ（ｔ））を、位置更新部６３から受ける。変換部６４は、その受けた各固定ノードの相対推定位置を、アンカーノードの相対推定位置と絶対位置とを用いて絶対位置へ変換する（ステップＳ３６）。
【０１１８】
アンカーノードの真位置（＝絶対位置）をＷＡ＝（ＸＡ，ＹＡ）とし、相対推定位置をｗＡ＝（ｘＡ，ｙＡ）とすると、真位置ＷＡ＝（ＸＡ，ＹＡ）は、推定位置ｗＡ＝（ｘＡ，ｙＡ）を用いて次式のように表される。
【０１１９】
【数４】
0006532606.tif 000005
【０１２０】
３つのアンカーノードそれぞれについて立てられた連立方程式（４）から６つの係数ａ，ｂ，ｃ，ｄ，ｔｘ，ｔｙを得ることにより、全ての固定ノードの推定位置ｗｉ＝（ｘｉ，ｙｉ）は、次式によって絶対位置Ｗｉ＝（Ｘｉ，Ｙｉ）へ変換される。
【０１２１】
【数５】
0006532606.tif 000006
【０１２２】
変換部６４は、式（４）から係数ａ，ｂ，ｃ，ｄ，ｔｘ，ｔｙを決定し、その決定した係数ａ，ｂ，ｃ，ｄ，ｔｘ，ｔｙを式（５）に代入して固定ノードＮ−１〜Ｎ−ｋの全ての相対推定位置を絶対位置に変換する。
【０１２３】
［３．４．トポロジ矛盾の判定（ステップＳ３７）］
トポロジ矛盾判定部６５は、固定ノードＮ−１〜Ｎ−ｋの絶対位置を変換部６４から受ける。トポロジ矛盾判定部６５は、その受けた固定ノードＮ−１〜Ｎ−ｋの絶対位置に基づいて、各固定ノードにおけるトポロジ矛盾の有無を判定して領域判定値ＶＴ＿ＡＶＥを計算する（ステップＳ３７）。
【０１２４】
（トポロジ矛盾の定義）
図１１は、図１に示す固定ノードＮ−１〜Ｎ−ｋの位置を推定した場合に生じるトポロジ矛盾を示す概念図である。図１１に示すように、固定ノードＮ−ｉは、仮の自己位置ｗｉ（ｔ）に存在する。固定ノードＮ−ｉから距離ｄ１の位置に１次近傍ノード（固定ノード）が存在し、固定ノードＮ−ｉから距離ｄ２の位置に２次近傍ノード（固定ノード）が存在する。
【０１２５】
１次近傍ノードのホップ数は、１であり、２次近傍ノードのホップ数は２である。ノード間距離は、上述のように、ホップ数に基づいて設定される。従って、本来のトポロジでは、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）は、２次近傍ノードよりも１次近傍ノードに近くなる。
【０１２６】
しかし、図１１において、距離ｄ２が距離ｄ１より小さいため、固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）は、１次近傍ノードよりも２次近傍ノードに近い。これは、２次近傍ノードが固定ノードＮ−ｉから１次近傍ノードよりも遠い位置に存在する本来のトポロジに明らかに矛盾する。このように、位置推定の対象である固定ノードＮ−ｉの仮の自己位置ｗｉ（ｔ）が１次近傍ノードよりも２次近傍ノードに近いことをトポロジ矛盾と呼ぶ。
【０１２７】
図１１に示すように、トポロジ矛盾が発生している場合、トポロジの折れ曲がりが発生する。ここで、「トポロジの折れ曲がり」とは、固定ノードＮ−ｉから１次近傍ノードへ向かうベクトルと１次近傍ノードから２近傍ノードへ向かうベクトルとがなす角が、９０度から２７０度の範囲内にあることを示す。
【０１２８】
（トポロジ矛盾の有無の判定）
図１２は、トポロジ矛盾が発生しているか否かを判定する処理を説明するための概念図である。
【０１２９】
図１２（ａ）に示すように、固定ノードＮ−ｉ、固定ノードＮ−ｉの１次近傍ノードＮ−ｊ、及び固定ノードＮ−ｉの２次近傍ノードであり、かつ、１次近傍ノードＮ−ｊの１次近傍ノードである固定ノードＮ−ｈの推定位置をそれぞれｗｉ，ｗｊ，ｗｈとする。ここで、ｉ，ｊ，ｈは、いずれも１以上ｋ以下の整数であり、ｉ≠ｊ，ｊ≠ｈ，ｈ≠ｉの条件を満たす。
【０１３０】
固定ノードＮ−ｈの真の位置をＷｈとした場合、固定ノードＮ−ｈの推定位置ｗｈは、トポロジの折れ曲がりの要因となる。この場合、ｗｉ，ｗｊを基準点とするｗｈのトポロジ矛盾判定は、ｗｈのトポロジ矛盾を検知できる範囲｜ｗｈ−ｗｉ｜≦｜ｗｊ−ｗｉ｜の外にある（＝トポロジ矛盾無しの条件を満たす）。ここで、範囲｜ｗｈ−ｗｉ｜は、図１１に示す距離ｄ２に相当し、範囲｜ｗｊ−ｗｉ｜は、図１１に示す距離ｄ１に相当する。つまり、距離ｄ１と距離ｄ２とを単純に比較するだけでは、推定位置ｗｈによる折れ曲がりを検知できない。
【０１３１】
そこで、図１２（ｂ）及び図１２（ｃ）に示すように、トポロジ矛盾判定の適応領域を拡大する。図１２（ｂ）に示すように、固定ノードＮ−ｉ，Ｎ−ｊの推定位置ｗｉ，ｗｊを基準点に設定する。そして、この２つの基準点を結ぶ線分Ｌ１（Ｌ１＝ｗｊ−ｗｉ）の垂直２等分線Ｌ１Ｈを用いて、固定ノードＮ−ｉが配置されている空間を、固定ノードＮ−ｉの推定位置ｗｉに近い領域と、Ｎ−ｊの推定位置ｗｊに近い領域とに分割し、固定ノードＮ−ｈの推定位置ｗｈが、分割された２つの領域のどちらに存在するかを判断する。
【０１３２】
この場合、垂直２等分線Ｌ１Ｈの左側の領域（斜線を施した領域）は、固定ノードＮ−ｈの推定位置ｗｈが、固定ノードＮ−ｉの推定位置ｗｉに近い領域であり、垂直２等分線Ｌ１Ｈの右側の領域は、固定ノードＮ−ｈの推定位置ｗｈが固定ノードＮ−ｊの推定位置ｗｊに近い領域である。固定ノードＮ−ｈは、固定ノードＮ−ｉの２次近傍ノードであるので、ｗｈは、ｗｊに近い領域内に位置しなければならない。従って、固定ノードＮ−ｈの推定位置ｗｈが固定ノードＮ−ｉの推定位置ｗｉに近い領域（斜線を施した領域）に位置する場合（｜ｗｈ―ｗｉ｜≦｜ｗｈ―ｗｊ｜）、トポロジ矛盾が発生していると判定する。
【０１３３】
さらに、折れ曲がりによるトポロジ矛盾の検知領域を拡大するために、図１２（ｃ）に示すように、固定ノードＮ−ｊに加えて固定ノードＮ−ｉと固定ノードＮ−ｊの共通の１次近傍ノードＮ−ｇを基準点として用いる。そして、固定ノードＮ−ｉ，Ｎ−ｇの推定位置ｗｉ，ｗｇを基準点に設定し、この２つの基準点を結ぶ線分Ｌ２（Ｌ２＝ｗｇ−ｗｉ）の垂直２等分線Ｌ２Ｈを用いて、固定ノードＮ−ｈが配置されている空間を、固定ノードＮ−ｉの推定位置ｗｉに近い領域と、固定ノードＮ−ｇの推定位置ｗｇに近い領域とに分割し、固定ノードＮ−ｈの推定位置ｗｈが、分割された２つの領域のどちらに存在するかを判断する。
【０１３４】
この場合、垂直２等分線Ｌ２Ｈの左側の領域（斜線を施した領域）は、固定ノードＮ−ｈの推定位置ｗｈが固定ノードＮ−ｉの推定位置ｗｉに近い領域であり、垂直２等分線Ｌ２Ｈの右側の領域は、固定ノードＮ−ｈの推定位置ｗｈが固定ノードｇの推定位置ｗｇに近い領域である。
【０１３５】
固定ノードＮ−ｈは、固定ノードＮ−ｉの２次近傍ノードであるので、ｗｈは、ｗｇに近い領域内に位置しなければならない。従って、固定ノードＮ−ｈの推定位置ｗｈが固定ノードＮ−ｉの推定位置ｗｉに近い領域（斜線を施した領域）に位置する場合（｜ｗｈ―ｗｉ｜≦｜ｗｈ―ｗｇ｜）、トポロジ矛盾判定部６５は、トポロジ矛盾が発生していると判定する。
【０１３６】
図１２（ｃ）に示す領域判定は、共通の１次近傍ノードの組み合わせを複数回変えて実施される。そして、複数回実施した結果において、式（６）により得られる領域判定値ＶＴが所定の閾値よりも大きい場合、固定ノードＮ−ｉにおいてトポロジ矛盾が発生していると最終的に判定する。
【０１３７】
【数６】
0006532606.tif 000007
【０１３８】
式（６）において、ＶＴは、固定ノードＮ−ｉにおける領域判定値を示し、Ａは、固定ノードＮ−ｉにおいて、共通１次近傍群を用いてトポロジ矛盾の有無の判定を行った回数を示し、ａは、トポロジ矛盾の発生回数を示す。ここで、共通１次近傍群は、トポロジ矛盾の判定基準となる固定ノードＮ−ｉの１次近傍ノードであり、かつ、固定ノードＮ−ｉの２次近傍ノードである固定ノードＮ−ｈの１次近傍ノードである固定ノードにより構成される。領域判定値ＶＴは、０以上１以下の数値であり、判定対象の固定ノードＮ−ｉにおいてトポロジ矛盾の発生回数が少ないほど、その値が０に近づく。
【０１３９】
このようにして、固定ノードＮ−１〜Ｎ−ｋの各々でトポロジ矛盾の有無を判定することにより、折れ曲がりによるトポロジ矛盾の検知領域を拡大でき、折れ曲がりによるトポロジ矛盾を効果的に検出できる。
【０１４０】
トポロジ矛盾判定部６５は、固定ノードＮ−１〜Ｎ−ｋの各々を基準にしてトポロジ矛盾の有無の判定を行うことにより、固定ノードＮ−１〜Ｎ−ｋの各々についての領域判定値ＶＴを計算する。トポロジ矛盾判定部６５は、固定ノードＮ−１〜Ｎ−ｋの各々についての領域判定値ＶＴの平均値である領域判定値ＶＴ＿ＡＶＥを計算し、仮想トポロジ生成部６６に出力する。領域判定値ＶＴ＿ＡＶＥは、領域判定値ＶＴと同様に、０以上１以下の数値であり、固定ノードＮ−１〜Ｎ−ｋにおけるトポロジ矛盾の発生回数が少ないほど、その値が０に近づく。
【０１４１】
上述の手順で計算された領域判定値ＶＴ＿ＡＶＥは、固定トポロジに基づく固定ノードＮ−１〜Ｎ−ｋの推定位置から得られたものであるため、固定トポロジに対応する。後述するように、領域判定値ＶＴ＿ＡＶＥは、仮想トポロジに基づく固定ノードＮ−１〜Ｎ−ｋの推定位置からも得られる。つまり、領域判定値ＶＴ＿ＡＶＥと、トポロジとは、１対１に対応する。
【０１４２】
［３．５．位置推定結果の出力（ステップＳ３８〜Ｓ４０）］
ここで、ステップＳ３８〜Ｓ４０の流れを説明する。なお、仮想トポロジ生成処理（ステップＳ３８の詳細については、後述する。
【０１４３】
図１０に示すように、仮想トポロジ生成部６６は、領域判定値ＶＴ＿ＡＶＥを受け、その受けた領域判定値ＶＴ＿ＡＶＥを用いて仮想トポロジを新たに生成する（ステップＳ３８）。仮想トポロジで示される固定ノードＮ−１の配置関係は、固定トポロジで示される固定ノードの配置関係と異なる。ステップＳ３８の詳細については、後述する。
【０１４４】
仮想トポロジ生成部６６が仮想トポロジを生成した場合（ステップＳ３９においてＮｏ）、位置推定装置５は、生成された仮想トポロジを用いて各固定ノードの位置を再び推定し（ステップＳ３４〜３６）、固定ノードの推定位置に基づいて、領域判定値ＶＴ＿ＡＶＥを再計算する（ステップＳ３７）。つまり、位置推定装置５は、仮想トポロジに対応する領域判定値ＶＴ＿ＡＶＥを計算する。
【０１４５】
位置推定装置５は、仮想トポロジ生成部６６が仮想トポロジの生成終了を決定するまで（ステップＳ３９においてＹｅｓ）、ステップＳ３４〜Ｓ３９を繰り返す。仮想トポロジ生成部６６が仮想トポロジの生成終了を決定した場合（ステップＳ３９においてＹｅｓ）、位置推定装置５は、固定ノードＮ−ｉ〜Ｎ−ｋの位置推定結果を出力する（ステップＳ４０）。具体的には、仮想トポロジ生成部６６は、これまでに得られた領域判定値ＶＴ＿ＡＶＥの中で得られた最小の領域判定値ＶＴ＿ＡＶＥを特定し、固定トポロジ及び仮想トポロジの中から、最小の領域判定値ＶＴ＿ＡＶＥに対応するトポロジを特定する。仮想トポロジ生成部６６は、特定したトポロジから得られた固定ノードＮ−ｉ〜Ｎ−ｋの絶対位置を、位置推定結果として出力する（ステップＳ４０）。これにより、固定ノード位置推定処理（ステップＳ３）が終了する。
【０１４６】
［３．６．仮想トポロジの生成（ステップＳ３８）］
以下、ステップＳ３８について詳しく説明する。仮想トポロジ生成部６６は、トポロジ矛盾判定部６５から領域判定値ＶＴ＿ＡＶＥを受け、その受けた領域判定値ＶＴ＿ＡＶＥに基づいて、固定ノードの仮想トポロジを生成する（ステップＳ３８）。仮想トポロジは、各固定ノードが他の固定ノードから広告パケットを直接受信することが可能な距離として仮想的に設定される仮想無線通信距離に基づいて設定される。以下、仮想無線通信距離を、「仮想ノード間距離」と呼ぶ。
【０１４７】
仮想トポロジ生成部６６は、領域判定値ＶＴ＿ＡＶＥを受けるたびに、仮想ノード間距離を更新し、更新された仮想ノード間距離に基づく仮想トポロジを生成する。そして、上述のように、各固定ノードの位置が、生成された仮想トポロジに基づいて再び推定され、生成された仮想トポロジに対応する領域判定値ＶＴ＿ＡＶＥが計算される。
【０１４８】
［３．６．１．位置推定誤差と無線通信距離との関係］
最初に、固定ノードＮ−１〜Ｎ−ｋの位置推定誤差を最小にすることができる最適な無線通信距離について説明する。
【０１４９】
図１３は、固定ノードの絶対位置を予め設定した場合において、非特許文献１に示す方法により各固定ノードの位置を推定したときにおける固定ノードの無線通信距離と位置推定誤差との関係を示すグラフである。具体的には、非特許文献１に示す方法では、各固定ノードの位置が、図１０に示すステップのうちステップＳ３１〜Ｓ３６のみを用いて推定される。図１３において、横軸は、１ホップの無線通信距離（広告パケットを直接受信することが可能な無線通信距離）を示し、縦軸は、位置推定誤差である。
【０１５０】
図１３に示すように、ノードの数が５０個、１００個及び１５０個のいずれの場合であっても、位置推定誤差が無線通信距離に対して概ね下に凸となっていることが分かる。これは、固定ノードの位置推定誤差を最小にすることができる最適な無線通信距離が存在することを意味する。
【０１５１】
無線通信距離が最適な無線通信距離よりも短い場合、各固定ノードにおける１次近傍ノードの数が少なくなり、固定ノードの位置推定に用いられる１次近傍ノードのトポロジ情報が不十分となる。この結果、無線通信距離が最適な無線通信距離よりも短くなるにつれて、位置推定精度が急激に劣化する。
【０１５２】
一方、無線通信距離が最適な無線通信距離よりも長い場合、ある固定ノードを基準にして、１ホップの位置にある固定ノードの数が増加する。この場合、基準となる固定ノードの１次近傍ノードのトポロジ情報において、ホップ解像度が低くなる。つまり、基準固定ノードから様々な距離にある複数の固定ノードが、１次近傍ノードとしてまとめて扱われるため、ホップ数から求められる通信距離（ステップＳ３３。図１０参照）と、実際の無線通信距離との間に乖離が拡大する。この結果、無線通信距離が最適な無線通信距離よりも長くなるにつれて、位置推定精度が劣化する。
【０１５３】
従って、最小の位置推定誤差または最適な無線通信距離を特定することができれば、固定ノードの位置を高精度で推定することができる。しかし、各固定ノードの真の位置は、アンカーノードを除いて不明であるため、位置推定装置５は、位置推定誤差を取得することができない。また、最適な無線通信距離を特定するために、各固定ノードの送信電力を制御して各固定ノードの無線通信距離を制御する方法が考えられる。しかし、各固定ノードの送信電力を位置推定のために制御することは、各固定ノードの処理負荷を考慮した場合、現実的ではない。
【０１５４】
そこで、位置推定装置５は、実際の無線通信距離に代えて仮想ノード間距離を使用し、位置推定誤差に代えて領域判定値ＶＴ＿ＡＶＥを使用する。位置推定装置５は、最適な無線通信距離に対応する最小の領域判定値ＶＴ＿ＡＶＥを探索し、探索の結果得られた最小の領域判定値ＶＴ＿ＡＶＥに対応するトポロジから得られる絶対位置を、位置推定結果として出力する。
【０１５５】
位置推定誤差に代えて領域判定値ＶＴ＿ＡＶＥを使用できる理由を説明する。領域判定値ＶＴ＿ＡＶＥは、無線ネットワーク１０における各固定ノードの位置を推定した場合におけるトポロジ矛盾の発生頻度を示す。領域判定値ＶＴ＿ＡＶＥが０に近づくにつれて、各センサノートの推定位置に関してトポロジ矛盾が少なくなり、各固定ノードの位置が高精度で推定されていると考えることができる。
【０１５６】
図１４は、通信距離を０．１５〜０．５に設定した場合における、固定ノードの位置推定誤差と、領域判定値との関係を示すグラフである。図１４に示す固定ノードの位置推定誤差は、図１３に示す位置推定誤差と同じである。図１４に示すように、領域判定値の低下に伴って、位置推定誤差が低下するという一定の相関関係が表れている。従って、最小の領域判定値ＶＴ＿ＡＶＥを特定し、特定した領域判定値ＶＴ＿ＡＶＥに対応する仮想トポロジに基づいて各固定ノードの位置を推定した場合、その推定位置の誤差は非常に小さいと想定される。
【０１５７】
［３．６．２．仮想トポロジの概略］
固定トポロジと仮想トポロジとの違いについて説明する。図１５は、固定ノードＮ−１のカバレッジの一例を示す図である。図１５において、固定ノードＮ−１〜Ｎ−１０を結ぶ実線は、実際の無線通信リンクを示す。領域Ｒ１は、固定ノードＮ−１の実際のカバレッジを示す。固定ノードＮ−１の実際の無線通信距離は、領域Ｒ１の半径に相当する。
【０１５８】
図１５に示すように、固定ノードＮ−１は、領域Ｒ１内に位置する固定ノードＮ−２〜Ｎ−８と直接通信可能である。つまり、固定ノードＮ−２〜Ｎ−８が、固定ノードＮ−１の１次近傍ノードであり、固定ノードＮ−２〜Ｎ−８の識別情報が、固定ノードＮ−１の隣接ノード情報に登録される。領域Ｒ１の外に位置する固定ノードＮ−９，Ｎ−１０は、固定ノードＮ−１の２次近傍ノードである。
【０１５９】
図１６は、仮想ノード間距離に基づく固定ノードＮ−１の仮想的なカバレッジを示す図である。図１６において、領域Ｒ２が、固定ノードＮ−１の仮想的なカバレッジであり、領域Ｒ２の半径が仮想ノード間距離に相当する。つまり、図１６は、仮想ノード間距離を実際の無線通信距離よりも小さくした場合における、固定ノードＮ−１の仮想的な１次近傍ノードを示す。固定ノードＮ−１の仮想的な１次近傍ノードは、固定ノードＮ−２，Ｎ−４，Ｎ−６，Ｎ−８である。
【０１６０】
つまり、仮想ノード間距離を実際の無線通信距離よりも短くすることにより、固定ノードＮ−１の１次近傍ノードを仮想的に減少させることができる。また、仮想ノード間距離を実際の無線通信距離を長くすることにより、固定ノードＮ−１の１次近傍ノードを仮想的に増加させることができる。
【０１６１】
このように、固定ノードＮ−１の１次近傍ノードを仮想的に変更することによって、ステップＳ３２で生成される固定トポロジ（隣接ノード情報に基づいて生成されるトポロジ）と異なる複数の仮想トポロジを生成することが可能となる。
【０１６２】
［３．６．３．仮想トポロジの生成（ステップＳ３８）の手順の概略］
上述のように、位置推定装置５は、最小の領域判定値ＶＴ＿ＡＶＥを探索する。しかし、図１３に示すグラフは、位置推定誤差の平均を用いており、位置推定誤差の実際の振れ幅は、図１３に示す振れ幅よりも大きい。このため、最急降下法を用いて領域判定値ＶＴ＿ＡＶＥの最小値を特定した場合、領域判定値ＶＴ＿ＡＶＥの局所解が、誤って最小値として特定されるおそれがある。
【０１６３】
そこで、仮想トポロジ生成部６６は、以下の手順に基づいて、最小の領域判定値ＶＴ＿ＡＶＥの探索を行う。具体的には、仮想トポロジ生成部６６は、これまでに計算された領域判定値ＶＴ＿ＡＶＥの中で最小の領域判定値ＶＴ＿ＡＶＥを記憶する。仮想トポロジ生成部６６は、現在記憶している領域判定値ＶＴ＿ＡＶＥに対応する仮想ノード間距離の近傍に、現在記憶している領域判定値ＶＴ＿ＡＶＥをより小さくすることのできる仮想ノード間距離が存在すると仮定する。
【０１６４】
仮想トポロジ生成部６６は、現在記憶している領域判定値ＶＴ＿ＡＶＥがより小さくなる方向に仮想ノード間距離を更新し、更新した仮想ノード間距離に基づいて仮想トポロジを新たに生成する。仮想トポロジ生成部６６は、新たな仮想トポロジから得られる領域判定値ＶＴ＿ＡＶＥを、現在記憶している領域判定値ＶＴ＿ＡＶＥと比較する。仮想トポロジ生成部６６は、これらの処理を繰り返すことにより、最小の領域判定値ＶＴ＿ＡＶＥを探索する。
【０１６５】
仮想トポロジ生成部６６は、以下の（１）及び（２）の考えに基づいて、最小の領域判定値ＶＴ＿ＡＶＥの探索を継続するか否かを判断する。
（１）領域判定値ＶＴ＿ＡＶＥの最小値の更新率が高い場合、新たな最小値が発見される可能性が高いため、最小値の探索を継続する必要がある。
（２）領域判定値ＶＴ＿ＡＶＥの最小値の更新率が低い場合、領域判定値ＶＴ＿ＡＶＥの最小値を発見した可能性が高い。
つまり、領域判定値ＶＴ＿ＡＶＥの最小値の更新率が予め設定された閾値以上である場合、仮想トポロジ生成部６６は、新たな仮想トポロジの探索を継続する。一方、領域判定値ＶＴ＿ＡＶＥの最小値の更新率が上記の閾値よりも低い場合、仮想トポロジ生成部６６は、最小の領域判定値ＶＴ＿ＡＶＥを特定できたと判断し、仮想トポロジの生成終了を決定する。
【０１６６】
［３．７．仮想トポロジの生成（ステップＳ３８）の具体的な処理］
［３．７．１．１回目の仮想トポロジの設定）
図１７及び図１８は、仮想トポロジ生成部６６の動作を示すフローチャートである。以下、図１７及び図１８を参照しながら、仮想トポロジの生成（ステップＳ３８。図１０参照）について詳しく説明する。
【０１６７】
仮想トポロジ生成部６６は、固定トポロジに対応する領域判定値ＶＴ＿ＡＶＥをトポロジ矛盾判定部６５から受けた場合、仮想トポロジが既に生成されたか否かを判断する（ステップＳ１０１）。固定ノードの位置推定において、仮想トポロジの生成が行われていないため（ステップＳ１０１においてＹｅｓ）、仮想トポロジ生成部６６は、最小の領域判定値ＶＴ＿ＡＶＥの探索に用いるパラメータを初期化する（ステップＳ１０２）。
【０１６８】
具体的には、仮想トポロジ生成部６６は、ステップＳ１０２において、最良領域判定値、最良領域判定値更新率、終了基準更新率、確率変数ａ，ｂ、及び仮想ノード間距離を設定する。
【０１６９】
最良領域判定値は、仮想トポロジ及び固定トポロジの各々に対応する領域判定値ＶＴ＿ＡＶＥのうち、最小の領域判定値ＶＴ＿ＡＶＥである。ステップＳ１０２では、仮想トポロジ生成部６６に最初に入力された領域判定値ＶＴ＿ＡＶＥが、最良領域判定値として設定される。
【０１７０】
最良領域判定値更新率は、最良領域判定値の更新頻度を示し、０以上１以下の数値である。具体的には、最良領域判定値更新率は、最良領域判定値の更新回数を、固定トポロジとこれまでに生成された仮想トポロジの合計数で除算することにより得られる。ステップＳ１０２では、最良領域判定値が、最初の領域判定値ＶＴ＿ＡＶＥの入力により更新されるため、最良領域判定値更新率は、１に設定される。
【０１７１】
終了基準更新率は、仮想トポロジの生成を終了するか否かを判断するための閾値である。仮想トポロジ生成部６６は、ステップＳ１０２において、確率分布関数Ｐ（ａ，ｂ）の確率変数ａ，ｂを０に初期化する。確率分布関数Ｐ（ａ，ｂ）の詳細については、後述する。
【０１７２】
また、仮想トポロジ生成部６６は、仮想ノード間距離の初期値を設定する。仮想トポロジ生成部６６は、変換部６４により変換された各固定ノードの絶対位置と、固定ノードの隣接ノード情報とに基づいて、固定ノードと隣接ノード情報に登録された１次近傍ノードとの距離の平均値を計算する。計算により得られた平均距離が、仮想ノード間距離の初期値として用いられる。このようにして設定された仮想ノード間距離の初期値は、固定トポロジの仮想無線通信距離に相当する。
【０１７３】
ステップＳ１０２の後に、仮想トポロジ生成部６６は、図１８に示すステップＳ１１６に進む。仮想トポロジ生成部６６は、０以上１以下の一様な乱数を生成し、生成した乱数を確率分布関数Ｐ（ａ，ｂ）と比較する（ステップＳ１１６）。
【０１７４】
確率分布関数Ｐ（ａ，ｂ）が乱数よりも大きい場合（ステップＳ１１６においてＹｅｓ）、仮想トポロジ生成部６６は、仮想ノード間距離を現在の仮想ノード間距離よりも小さくする（ステップＳ１１７）。一方、確率分布関数Ｐ（ａ，ｂ）が乱数以下である場合（ステップＳ１１６においてＮｏ）、仮想ノード間距離を現在の仮想ノード間距離よりも大きくする（ステップＳ１１８）。
【０１７５】
ここで、確率分布関数Ｐ（ａ，ｂ）について詳しく説明する。上述のように、確率分布関数Ｐ（ａ，ｂ）は、仮想ノード間距離を小さくするか、あるいは、大きくするかを決定するために用いられる。確率分布関数Ｐ（ａ，ｂ）は、式（７）により表される。
【０１７６】
【数７】
0006532606.tif 000008
【０１７７】
式（７）において、確率変数ａは、仮想ノード間距離を小さくした場合に領域判定値ＶＴ＿ＡＶＥが減少したケースの数と、仮想ノード間距離を大きくした場合に領域判定値ＶＴ＿ＡＶＥが増加したケースとの和である。つまり、確率変数ａは、仮想ノード間距離を小さくした場合において、領域判定値ＶＴ＿ＡＶＥがより小さくなった回数を示す。
【０１７８】
確率変数ｂは、仮想ノード間距離を大きくした場合に領域判定値ＶＴ＿ＡＶＥが減少したケースの数と、仮想ノード間距離を小さく場合に領域判定値ＶＴ＿ＡＶＥが増加したケースとの和である。つまり、確率変数ｂは、仮想ノード間距離を大きくした場合において、領域判定値ＶＴ＿ＡＶＥがより大きくなった回数を示す。
【０１７９】
仮想ノード間距離を小さくするか否かは、ステップＳ１１６に示すように、確率分布関数Ｐ（ａ，ｂ）と乱数との比較結果に基づいて決定される。確率分布関数Ｐ（ａ，ｂ）が１に近づくほど、仮想ノード間距離を小さくする確率が高くなり、確率分布関数Ｐ（ａ，ｂ）が０に近づくほど、仮想ノード間距離を大きくする確率が高くなる。
【０１８０】
確率分布関数が０．５に近い場合、仮想ノード間距離を小さくするか大きくするかはランダムに決定される。仮想ノード間距離を小さくすればよいのか、大きくすればよいのかは、仮想トポロジの最初に生成する時点では決まっていない。このため、仮想トポロジ生成部６６は、ステップＳ１０２において、確率変数ａ，ｂを０に設定することにより、仮想ノード間距離を小さくするか大きくするかをランダムに決定する。
【０１８１】
次に、仮想ノード間距離を小さくする処理（ステップＳ１１７）について説明する。仮想トポロジ生成部６６は、図１７及び図１８に示す処理を開始する際に、固定ノードの隣接ノード情報を取得し、変換部６４から各固定ノードの絶対位置を取得する。
【０１８２】
そして、仮想トポロジ生成部６６は、固定ノードＮ−１〜Ｎ−ｋのうち、少なくとも１つの固定ノードにおける１次近傍ノードの数が減少するように、仮想ノード間距離を小さくする。１次近傍ノードの減少数は、１以上であればよい。例えば、図１６に示すように、仮想ノード間距離が、領域Ｒ１の半径に設定されている場合を考える。この場合において、仮想ノード間距離を領域Ｒ１の半径から領域Ｒ２の半径に減少させた場合、固定ノードＮ−１の１次近傍ノードの数は、７から４に減少する。
【０１８３】
一方、仮想ノード間距離を大きくする処理（ステップＳ１１８）を実行する場合、仮想トポロジ生成部６６は、仮想トポロジ生成部６６は、固定ノードＮ−１〜Ｎ−ｋのうち、少なくとも１つの固定ノードにおける１次近傍ノードの数が増加するように、仮想ノード間距離を大きくする。１次近傍ノードの増加数は、１以上であればよい。例えば、図１６に示すように、仮想ノード間距離が、領域Ｒ１の半径に設定されている場合を考える。この場合、固定ノードＮ−９が固定ノードＮ−１の１次近傍ノードとなるように、仮想ノード間距離を、領域Ｒ１の半径から大きくすればよい。
【０１８４】
仮想トポロジ生成部６６は、変更された仮想ノード間距離に基づいて、仮想トポロジを生成する（ステップＳ１１９）。具体的には、仮想トポロジ生成部６６は、固定ノードＮ−ｉの絶対位置を基準として、ステップＳ１１７又はＳ１１８で変更された仮想ノード間距離の範囲内にある他の固定ノードを、固定ノードＮ−ｉの１次近傍ノードを特定することにより、固定ノードＮ−ｉについての仮想的な隣接ノード情報を生成する。そして、仮想トポロジ生成部６６は、ステップＳ２と同様の手順で、仮想的な隣接ノード情報に基づいて、各固定ノードの仮想トポロジを生成する。
【０１８５】
位置更新部６３は、仮想トポロジ生成部６６から仮想トポロジを受け、その受けた仮想トポロジに基づいて、各固定ノードの仮の自己位置を更新することにより、各固定ノードの位置を推定する。仮想トポロジに基づいて各固定ノードの位置を推定する場合、位置更新部６３は、自己位置生成部６２により新たに生成されたランダムな仮の自己位置を用いてもよいし、直前のトポロジ又は仮想トポロジに基づいて推定された推定位置を用いてもよい。
【０１８６】
［３．７．２．最良領域判定値を更新する場合］
２回目以降の仮想トポロジの生成について説明する。以下、仮想トポロジ生成部６６がトポロジ矛盾判定部６５から受ける領域判定値ＶＴ＿ＡＶＥを、「現在の領域判定値」と呼び、現在の領域判定値に対応する仮想トポロジを「現在の仮想トポロジ」と呼ぶ。
【０１８７】
図１７に示すように、仮想トポロジ生成部６６は、現在の領域判定値をトポロジ矛盾判定部６５から受けた場合、１回目の仮想トポロジの生成であるか否かを判断する（ステップＳ１０１）。仮想トポロジの生成が既に行われているため（ステップＳ１０１においてＮｏ）、仮想トポロジ生成部６６は、現在の領域判定値を最良領域判定値と比較する（ステップＳ１０３）。
【０１８８】
現在の領域判定値が最良領域判定値よりも小さい場合（ステップＳ１０３においてＹｅｓ）、仮想トポロジ生成部６６は、最良領域判定値を現在の領域判定値で更新し（ステップＳ１０４）、最良領域判定値更新率を更新する（ステップＳ１０５）。
【０１８９】
最良領域判定値が更新された場合、上述のように、現在の仮想トポロジの生成に用いられた仮想ノード間距離の近傍に、より小さい領域判定値ＶＴ＿ＡＶＥを得ることのできる仮想ノード間距離が存在する可能性がある。仮想トポロジ生成部６６は、より小さい領域判定値ＶＴ＿ＡＶＥを探索するために、確率変数ａ，ｂをそれぞれ０に再初期化する（ステップＳ１０６）。これにより、確率分布関数Ｐ（ａ，ｂ）の値は０．５となるため、現在の仮想トポロジに設定に用いられた仮想ノード間距離の修正方向はランダムに決定される。
【０１９０】
仮想トポロジ生成部６６は、確率分布関数Ｐ（ａ，ｂ）を乱数と比較し（ステップＳ１１６）、その比較結果に基づいて、仮想ノード間距離を小さくする処理（ステップＳ１１７）及び仮想ノード間距離を大きくする処理（ステップＳ１１８）を実行する。
【０１９１】
［３．７．３．最良領域判定値が更新されない場合］
図１７に示すように、仮想トポロジ生成部６６は、現在の領域判定値をトポロジ矛盾判定部６５から受けた場合、１回目の仮想トポロジの生成であるか否かを判断する（ステップＳ１０１）。仮想トポロジの生成が既に行われているため（ステップＳ１０１においてＮｏ）、仮想トポロジ生成部６６は、現在の領域判定値を最良領域判定値と比較する（ステップＳ１０３）。
【０１９２】
現在の領域判定値が最良領域判定値以上である場合（ステップＳ１０３においてＮｏ）、仮想トポロジ生成部６６は、最良領域判定値更新率を終了基準更新率と比較する（ステップＳ１０７）。最良領域判定値更新率が終了基準更新率よりも小さい場合（ステップＳ１０７においてＹｅｓ）については、後述する。
【０１９３】
最良領域判定値更新率が終了基準更新率以上である場合（ステップＳ１０７においてＮｏ）、仮想トポロジ生成部６６は、新たな最小値が発見される可能性が高いため、最小値の探索を継続する。
【０１９４】
具体的には、仮想トポロジ生成部６６は、現在の仮想トポロジを生成する際に、仮想ノード間距離を減少させたか否かを判断する（ステップＳ１０９）。つまり、仮想トポロジ生成部６６は、現在の仮想トポロジの生成に用いた仮想ノード間距離と、直前のトポロジの生成に用いた仮想ノード間距離とを比較する。ここで、直前のトポロジとは、現在の仮想トポロジよりも１つ前に生成されたトポロジ（固定トポロジ又は仮想トポロジ）のことである。
【０１９５】
現在の仮想トポロジの生成に用いた仮想ノード間距離が直前のトポロジの生成に用いた仮想ノード間距離よりも小さい場合、仮想トポロジ生成部６６は、現在の仮想トポロジを生成する際に、仮想ノード間距離を減少させたと判断する。
【０１９６】
仮想ノード間距離を減少させていた場合（ステップＳ１０９においてＹｅｓ）、仮想トポロジ生成部６６は、図１８に示すステップＳ１１０に進み、現在の領域判定値を、前回の領域判定値と比較する（ステップＳ１１０）。前回の領域判定値は、直前の仮想トポロジに対応する。現在の領域判定値を前回の領域判定値と比較することにより、領域判定値ＶＴ＿ＡＶＥが減少傾向にあるのか、増加傾向にあるのかが判断される。
【０１９７】
前回の領域判定値が現在の領域判定値よりも大きい場合（ステップＳ１１０においてＹｅｓ）、仮想ノード間距離を小さくして領域判定値ＶＴ＿ＡＶＥが減少したケースに該当する。この場合、仮想ノード間距離をさらに小さくすることにより、さらに小さい領域判定値ＶＴ＿ＡＶＥが得られる可能性が高い。確率変数ａを増加させた場合、確率分布関数Ｐ（ａ，ｂ）が１に近づくため、確率分布関数Ｐ（ａ，ｂ）が、一様乱数よりも大きくなる確率が高まる。この結果、ノード間通信距離を減少させる処理（ステップＳ１１７）が実行される確率が高まる。仮想トポロジ生成部６６は、仮想ノード間距離を減少させるために、確率変数ａに１を加える（ステップＳ１１１）。
【０１９８】
一方、ステップＳ１１０において、前回の領域判定値が現在の領域判定値以下である場合（ステップＳ１１０においてＮｏ）、仮想ノード間距離を小さくして領域判定値が増加したケースに該当する。この場合、仮想ノード間距離を大きくすることにより、より小さい領域判定値ＶＴ＿ＡＶＥが得られる可能性が高い。確率変数ｂを増加させた場合、確率分布関数Ｐ（ａ，ｂ）が０に近づくため、確率分布関数Ｐ（ａ，ｂ）が、一様乱数以下となる確率が高まる。この結果、仮想ノード間距離を増加させる処理（ステップＳ１１８）が実行される確率が高まる。仮想トポロジ生成部６６は、仮想ノード間距離を増加させるために、確率変数ｂに１を加える（ステップＳ１１２）。
【０１９９】
仮想トポロジ生成部６６は、更新された確率変数ａ又はｂを用いて確率分布関数Ｐ（ａ，ｂ）を計算し、計算した確率分布関数Ｐ（ａ，ｂ）を一様乱数と比較する（ステップＳ１１６）。仮想トポロジ生成部６６は、上述のように、比較結果に応じて、仮想ノード間距離を減少させる処理（ステップＳ１１７）、又は、仮想ノード間距離を増加させる処理（ステップＳ１１８）を実行する。
【０２００】
なお、仮想トポロジ生成部６６は、ステップＳ１１７又はＳ１１８を実行するにあたり、直前に生成された仮想トポロジを参照する。具体的には、仮想トポロジ生成部６６は、直前に生成された仮想トポロジにおける固定ノードＮ−ｉの１次近傍ノードを参照して、仮想ノード間距離の変更量を決定する。
【０２０１】
仮想トポロジ生成部６６は、ステップＳ１１７又はＳ１１８により変更されたノード間距離に基づいて、仮想トポロジを生成する（ステップＳ１１９）。このように、確率分布関数Ｐ（ａ，ｂ）における確率変数ａ，ｂを用いることにより、仮想ノード間距離の増減を制御することが可能となる。
【０２０２】
ここで、ステップＳ１０９（図１７参照）の説明に戻る。前回の仮想トポロジの設定時において、仮想ノード間距離を増加させていた場合（ステップＳ１０９においてＮｏ）、仮想トポロジ生成部６６は、図１８に示すステップＳ１１３に進み、現在の領域判定値を、前回の領域判定値と比較する。現在の領域判定値を前回の領域判定値と比較することにより、領域判定値ＶＴ＿ＡＶＥが減少傾向にあるのか、増加傾向にあるのかが判断される。
【０２０３】
前回の領域判定値が現在の領域判定値よりも大きい場合（ステップＳ１１３においてＹｅｓ）、仮想ノード間距離を小さくして領域判定値が減少したケースに該当する。この場合、ステップＳ１１１と同様に、仮想ノード間距離を小さくすることにより、さらに小さい領域判定値ＶＴ＿ＡＶＥが得られる可能性が高い。従って、仮想トポロジ生成部６６は、確率変数ａに１を加える（ステップＳ１１４）。
【０２０４】
一方、前回の領域判定値が現在の領域判定値以下である場合（ステップＳ１１３においてＮｏ）、仮想ノード間距離を小さくして領域判定値ＶＴ＿ＡＶＥが増加したケースに該当する。この場合、ステップＳ１１２と同様に、仮想ノード間距離を大きくすることにより、さらに小さい領域判定値が得られる可能性が高い。従って、仮想トポロジ生成部６６は、確率変数ｂに１を加える（ステップＳ１１５）。
【０２０５】
仮想トポロジ生成部６６は、更新された確率変数ａ又はｂを用いて確率分布関数Ｐ（ａ，ｂ）を計算し、計算した確率分布関数Ｐ（ａ，ｂ）を一様乱数と比較する（ステップＳ１１６）。仮想トポロジ生成部６６は、上述のように、比較結果に応じて、仮想ノード間距離を減少させる処理（ステップＳ１１７）、又は、仮想ノード間距離を増加させる処理（ステップＳ１１８）を実行する。仮想トポロジ生成部６６は、ステップＳ１１７又はＳ１１８により変更されたノード間距離に基づいて、仮想トポロジを生成する（ステップＳ１１９）。
【０２０６】
ここで、確率分布関数Ｐ（ａ，ｂ）の具体例について説明する。図１９及び図２０は、確率分布関数Ｐ（ａ，ｂ）の具体例を示すグラフである。図１９は、確率変数ａ，ｂの比（ａ／ｂ）が１から遠い場合における確率分布関数Ｐ（ａ，ｂ）の分布形状を示す。図１８は、確率変数ａ，ｂの比（ａ／ｂ）が１から近い場合における確率分布関数Ｐ（ａ，ｂ）の分布形状を示す。
【０２０７】
図１９及び図２０に示すように、確率変数ａ，ｂを初期化してから、ｓ回目（ｓは２以上の整数）の領域判定値ＶＴ＿ＡＶＥの探索時において、確率分布関数Ｐ（ａ，ｂ）の挙動は、確率変数ａ，ｂの比（ａ／ｂ）によって変動する。
【０２０８】
確率変数ａ，ｂの比（ａ／ｂ）が１から遠い場合、確率分布関数Ｐ（ａ，ｂ）は、図１９に示すように、仮想ノード間距離を減少させる方向又は増加させる方向に強く作用する。具体的には、確率変数ａ，ｂの比（ａ／ｂ）が１より大きい場合、確率分布関数Ｐ（ａ，ｂ）が１に近づくため、仮想ノード間距離を小さくする確率が高くなる。つまり、領域判定値ＶＴ＿ＡＶＥの探索が、仮想ノード間距離を小さくする方向で行われる。一方、確率変数ａ，ｂの比（ａ／ｂ）が１より小さい場合、確率分布関数Ｐ（ａ，ｂ）が０に近づくため、仮想ノード間距離を大きくする確率が高くなる。つまり、つまり、領域判定値ＶＴ＿ＡＶＥの探索が、仮想ノード間距離を大きくする方向で行われる。
【０２０９】
また、確率変数ａ，ｂの比（ａ／ｂ）が１に近い場合、確率分布関数Ｐ（ａ，ｂ）は、図２０に示すように、仮想ノード間距離を減少させる確率及び増加させる確率がともに０．５に近づく。この場合、仮想ノード間距離を変化させる方向が明確ではないため、いずれの方向にも探索が行われる。
【０２１０】
［３．７．４．仮想トポロジの生成の終了］
図１７に示すように、仮想トポロジ生成部６６は、現在の領域判定値をトポロジ矛盾判定部６５から受けた場合、１回目の仮想トポロジの生成であるか否かを判断する（ステップＳ１０１）。仮想トポロジの生成が既に行われているため（ステップＳ１０１においてＮｏ）、仮想トポロジ生成部６６は、現在の領域判定値を最良領域判定値と比較する（ステップＳ１０３）。
【０２１１】
最良領域判定値が現在の領域判定値以下である場合（ステップＳ１０３においてＮｏ）、仮想トポロジ生成部６６は、領域判定値ＶＴ＿ＡＶＥの最小値の探索が終了した可能性があると判断し、ステップＳ１０７に進む。
【０２１２】
仮想トポロジ生成部６６は、終了基準更新率を最良領域判定値更新率と比較する（ステップＳ１０７）。最良領域判定値更新率が終了基準更新率よりも低い場合（ステップＳ１０７においてＹｅｓ）、仮想トポロジ生成部６６は、現在の最良領域判定値よりも小さい領域判定値ＶＴ＿ＡＶＥが発見される可能性が低いと判断し、仮想トポロジの生成終了を決定する（ステップＳ１０８）。
【０２１３】
仮想トポロジの生成終了を決定した場合、仮想トポロジ生成部６６は、図１０のステップＳ４０において、最小の領域判定値ＶＴ＿ＡＶＥに対応するトポロジを特定する。仮想トポロジ生成部６６は、特定したトポロジから得られた固定ノードＮ−ｉ〜Ｎ−ｋの絶対位置を、位置推定結果として出力する。
【０２１４】
このように、位置推定装置５は、固定トポロジに基づく各固定ノードの位置推定を行い、固定トポロジに対応する領域判定値ＶＴ＿ＡＶＥを計算する。位置推定装置５は、複数の仮想ノード間距離を設定して複数の仮想トポロジを設定し、各仮想トポロジに基づく各固定ノードの位置推定を行う。位置推定装置５は、各仮想トポロジにおけるトポロジ矛盾の発生頻度を示す領域判定値ＶＴ＿ＡＶＥを計算する。位置推定装置５は、複数の領域判定値ＶＴ＿ＡＶＥの中から最小の領域判定値ＶＴ＿ＡＶＥを特定し、特定した最小の領域判定値ＶＴ＿ＡＶＥに対応するトポロジに基づく位置推定結果を、最終の位置推定結果として出力する。これにより、従来の方法に比べて、停止中の固定ノードの位置推定精度を向上させることができる。
【０２１５】
［４．移動ノードの位置推定処理（ステップＳ４）］
図２１は、移動ノード位置推定部７０の動作を示すフローチャートである。以下、図２１を参照しながら、移動ノードＭ−１〜Ｍ−ｐの位置を推定する処理（ステップＳ４）について詳しく説明する。
【０２１６】
［４．１．移動ノードの選択］
移動ノード位置推定部７０は、分類部５２により分類された移動ノードＭ−１〜Ｍ−ｐの隣接ノード情報を取得する（ステップＳ４１）。移動トポロジ生成部７１は、取得した隣接ノード情報に基づいて、移動ノードＭ−１〜Ｍ−ｐを認識する。移動トポロジ生成部７１は、移動ノードＭ−１〜Ｍ−ｐのうち、位置推定の対象となる移動ノードＭ−ｕ（ｕは、１以上ｐ以下の整数）を選択する（ステップＳ４２）。
【０２１７】
［４．２．移動トポロジの生成］
移動トポロジ生成部７１は、移動ノードＭ−ｕの近傍に位置する固定ノードの隣接ノード情報を取得する（ステップＳ４３）。具体的には、移動トポロジ生成部７１は、移動ノードＭ−ｕの隣接ノード情報に記録されている固定ノードを特定する。移動トポロジ生成部７１は、特定した固定ノードの隣接ノード情報を分類部５２から取得する。
【０２１８】
例えば、移動ノードＭ−１がステップＳ４２で選択された場合、移動トポロジ生成部７１は、図２に示す隣接ノード情報２１Ｍを参照して、固定ノードＮ−１及び固定ノードＮ−５を特定し、特定した固定ノードＮ−１及びＮ−５の隣接ノード情報を、分類部５２から取得する。
【０２１９】
移動トポロジ生成部７１は、移動ノードＭ−ｕの隣接ノード情報と、ステップＳ４３において取得した隣接ノード情報とに基づいて、移動ノードＭ−ｕのトポロジ（移動トポロジ）を生成する（ステップＳ４４）。移動トポロジの生成手順は、固定トポロジの生成手順（ステップＳ３２。図１０参照）と同じである。ただし、移動トポロジ生成部７１は、移動ノードＭ−ｕの１次近傍ノード及び２次近傍ノードのみを特定し、３次以上の近傍ノードを特定しない。
【０２２０】
つまり、移動トポロジ生成部７１は、ステップＳ４４において、移動ノードＭ−ｕの移動トポロジとして、移動ノードＭ−ｕの１次近傍ノード及び２次近傍ノードのみを記録したトポロジを生成する。また、移動ノードＭ−ｕの移動トポロジにおいて、１次近傍ノード及び２次近傍ノードは、全て固定ノードであり、移動ノードを含まない。
【０２２１】
図２２は、移動ノードＭ−１と、固定ノードＮ−１〜Ｎ−１２との位置関係の一例を示す図である。以下、図２２を参照しながら、移動ノードＭ−１がステップＳ４２で選択された場合における、移動ノードＭ−１の移動トポロジについて説明する。
【０２２２】
図２２に示すように、領域Ｒ１１は、移動ノードＭ−１のカバレッジであり、移動ノードＭ−１の１次近傍ノードが設定される範囲に相当する。このため、移動ノードＭ−１の移動トポロジにおいて、領域Ｒ１１内に存在する固定ノードＮ−１〜Ｎ−５が、移動ノードＭ−１の１次近傍ノードとして設定される。
【０２２３】
領域Ｒ１２は、移動ノードＭ−１の２次近傍ノードが設定される範囲に相当する。移動ノードＭ−１の移動トポロジにおいて、固定ノードＮ−６〜Ｎ−８が、移動ノードＭ−１の２次近傍ノードとして設定される。固定ノードＮ−９〜Ｎ−１２は、領域Ｒ１２の範囲外にあり、移動ノードＭ−ｕの３次近傍ノードに相当する。このため、固定ノードＮ−９〜Ｎ−１２は、移動ノードＭ−１の移動トポロジに含まれない。固定ノードＮ−９〜Ｎ−１２は、移動ノードＭ−１の位置推定に用いられない。
【０２２４】
つまり、移動ノードＭ−ｕの移動トポロジは、無線ネットワーク１０全体の大局的なトポロジを構成するのではなく、移動ノードＭ−ｕを中心にした局所的なトポロジを構成する。
【０２２５】
また、図２２では、移動ノードＭ−１以外の移動ノードを示していない。移動ノードＭ−１の移動トポロジは、移動ノードＭ−１以外の他の移動ノードを、１次近傍ノード及び２次近傍ノードとして含まない。この理由は、移動ノードの位置が推定されていないため、他の移動ノードを移動トポロジに含めた場合、移動ノードＭ−１の位置推定精度が低下するためである。
【０２２６】
［４．３．移動ノードの仮の自己位置の更新］
再び、図２１を参照する。自己位置生成部７２は、ステップＳ４２で選択された移動ノードＭ−ｕの仮の自己位置ｘｕ（ｔ）をランダムに生成する（ステップＳ４５）。仮の自己位置は、所定の２次元座標上に設定される。ｔは、仮の自己位置の更新回数を示す。
【０２２７】
位置更新部７３は、移動トポロジを移動トポロジ生成部７１から取得し、移動ノードＭ−ｕの仮の自己位置ｘｕ（ｔ）を自己位置生成部７２から取得する。位置更新部７３は、その取得した移動トポロジに基づいて、１次近傍ノード及び２次近傍ノードの相対推定位置を固定ノード位置推定部６０から取得する（ステップＳ４６）。
【０２２８】
位置更新部７３は、取得した仮の自己位置ｘｕ（ｔ）を所定の更新回数で更新する（ステップＳ４７）。仮の自己位置ｘｕ（ｔ）の更新手順は、ステップＳ３５（図１０参照）における仮の自己位置の更新手順と同じである。ただし、移動トポロジは、１次近傍ノード及び２次近傍ノードのみを記録しているため、上記式（２）において、ｎは、２に設定される。つまり、移動ノードの仮の自己位置ｘｕ（ｔ）を更新する場合、式（２）のうち、最下段の式のみが用いられる。移動ノードＭ−ｕの仮の自己位置ｘｕ（ｔ）の更新が終了した場合、位置更新部７３は、更新の終了した移動ノードＭ−ｕの仮の自己位置ｘｕ（ｔ）を、移動ノードＭ−ｕの推定位置として出力する。
【０２２９】
ステップＳ４７では、移動トポロジにおいて設定された１次近傍ノード及び２次近傍ノード（固定ノード）の位置は更新されない。この理由は、固定ノードの位置推定処理（ステップＳ３）において、固定ノードの位置が既に十分な精度で推定されており、移動ノードの位置推定（ステップＳ４）の際に、固定ノードの位置を改めて推定する必要がないためである。
【０２３０】
上述のように、移動ノードＭ−ｕの位置推定では、移動ノードＭ−ｕの１次近傍ノード及び２次近傍ノードを使用し、３次以上の近傍ノードを使用しない。これにより、固定ノードの位置推定に比べて、移動ノードの位置推定に要する演算量を削減することができる。移動ノードの位置推定では、その精度よりも、移動ノードの移動に伴う追随性が優先される。このため、移動ノードＭ−ｕの位置推定に使用する近傍ノードの数を抑制することにより、移動ノードＭ−ｕの位置を迅速に推定することができる。
【０２３１】
なお、上記では、移動トポロジが１次近傍ノード及び２次近傍ノードのみを定義している例を説明しているが、これに限られない。移動トポロジは、３次以上の近傍ノードを含んでいてもよい。ただし、移動ノードＭ−ｕの位置を迅速に推定するという観点から、移動トポロジは、固定トポロジが１次近傍ノードからｎ次近傍ノードまでを含んでいる場合、移動トポロジは、１次近傍ノードから（ｎ−１）次近傍ノードを含んでいることが望ましい。つまり、移動トポロジにおける近傍ノードの数が、固定トポロジにおける近傍ノードの数よりも少なければよい。
【０２３２】
［４．４．移動ノードの推定位置の変換］
変換部７４は、更新が完了した移動ノードＭ−ｕの仮の自己位置（ｘｕ（ｔ））を位置更新部７３から受ける。変換部７４は、その受けた移動ノードＭ−ｕの装置推定位置を、アンカーノードの推定位置と絶対位置とを用いて絶対位置へ変換する（ステップＳ４８）。ステップＳ４７における移動ノードＭ−ｕの絶対位置の変換手順は、ステップＳ３６（図１０参照）と同様である。変換部７４は、ステップＳ４７により得られた移動ノードＭ−ｕの絶対位置を、移動ノードＭ−ｕの位置推定結果として出力する。
【０２３３】
［４．５．移動ノードの位置推定の終了判断］
移動ノードＭ−ｕの絶対位置が出力された後に、移動トポロジ生成部７１は、未選択の移動ノードがあるか否かを判定する（ステップＳ４９）。
【０２３４】
未選択の移動ノードがある場合（ステップＳ４９においてＹｅｓ）、移動トポロジ生成部７１は、未選択の移動ノードの中から、移動ノードを新たに選択する（ステップＳ４２）。その後、新たに選択された移動ノードの位置推定が行われる。全ての移動ノードを選択した場合（ステップＳ４９においてＮｏ）、移動ノード位置推定部７０は、図２１に示す処理を終了する。
【０２３５】
このように、移動ノード位置推定部７０は、移動ノードＭ−ｕの位置を推定する際に、移動ノードＭ−ｕの１次近傍ノード及び２次近傍ノードを使用し、３次以上の近傍ノードを使用しない。これにより、移動ノードＭ−ｕの位置推定に要する演算量を削減できるため、移動ノードＭ−ｕの位置を速やかに推定することができる。また、移動トポロジは、１次近傍ノード及び２次近傍ノードとして固定ノードを含み、移動ノードＭ−ｕ以外の移動ノードを含まない。これにより、位置推定が行われていない移動ノードが、移動ノードＭ−ｕの位置推定に使用されないため、移動ノードＭ−ｕの位置推定精度を向上させることができる。
【０２３６】
［４．６．移動ノードの隣接ノード情報の再利用］
上述のように、移動ノードＭ−ｕの位置推定を終了した場合、移動ノードＭ−ｕの隣接ノード情報は、仮想的な固定ノードの隣接ノード情報として再利用される。これにより、無線ネットワーク１０（図１参照）における固定ノードの数を仮想的に増加させることができるため、無線ネットワーク１０における無線ノードの位置推定精度を向上させることができる。以下、詳しく説明する。
【０２３７】
移動ノードＭ−ｕは、時間の経過とともに移動しながら、定期的に隣接ノード情報を含む通知パケットＤＴＧを送信する。従って、移動ノードを離散時間で見た場合、移動ノードを、異なる複数の時刻における複数の固定ノードとみなすことが可能である。
【０２３８】
図２３は、移動ノードＭ−１の位置の変化の一例を示す図である。図２３において、移動ノードＭ−１の符号のみを表示し、固定ノードの符号の表示を省略している。
【０２３９】
図２３に示すように、移動ノードＭ−１が、時間の経過とともに、左から右方向へ移動している。この場合、位置推定装置５は、時刻Ｔ１における移動ノードＭ−１の位置を、時刻Ｔ１における移動ノードＭ−１の隣接ノード情報を用いて推定する。その後、位置推定装置５は、時刻Ｔ２における移動ノードＭ−１の位置を、時刻Ｔ２における移動ノードＭ−１の隣接ノード情報を用いて推定し、時刻Ｔ３における移動ノードＭ−１の位置を、時刻Ｔ３における移動ノードＭ−１の隣接ノード情報を用いて推定する。
【０２４０】
時刻Ｔ２における移動ノードＭ−１の位置推定の際に、時刻Ｔ１における移動ノードＭ−１の隣接ノード情報は使用されない。また、時刻Ｔ３における移動ノードＭ−１の位置推定の際に、時刻Ｔ１及びＴ２における移動ノードＭ−１の隣接ノード情報は使用されない。しかし、時刻Ｔ１及びＴ２における移動ノードＭ−１の隣接ノード情報は、時刻Ｔ１及び時刻Ｔ２における移動ノードＭ−１の位置に固定ノードを設置した仮定した場合、この固定ノードにより生成された隣接ノード情報であると考えることができる。つまり、移動ノードＭ−１を時刻Ｔ１、Ｔ２、及びＴ３という離散時間で見た場合、移動ノードＭ−１は、これらの時刻における固定ノードであると考えることができる。
【０２４１】
位置推定装置５は、この考えに従って、移動ノードＭ−１の位置推定に使用した隣接ノード情報を、仮想的な固定ノードの隣接ノード情報として使用する。具体的には、移動トポロジ生成部７１（図８参照）は、移動ノードＭ−ｕの位置推定が完了した場合、移動ノードＭ−ｕの隣接ノード情報を、固定ノード位置推定部６０（図７参照）の固定トポロジ生成部６１へ出力する。固定トポロジ生成部６１は、固定トポロジを生成する際に、分類部５２から受ける固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報に加えて、移動トポロジ生成部７１から受けた移動ノードＭ−ｕの隣接ノード情報を仮想的な固定ノードの隣接ノード情報として使用する。
【０２４２】
これにより、無線ネットワーク１０における固定ノードの数を、仮想的に増加させることができる。固定ノードの位置推定精度は、固定ノードの数の増加に応じて向上する。この理由は、固定ノードの数が増加するにつれて、固定ノードの位置を推定する際に用いられる固定トポロジがより詳細化するためである。
【０２４３】
このように、移動ノードＭ−ｕを離散時間で扱うことにより、移動ノードＭ−ｕの過去の隣接ノード情報を、仮想的な固定ノードの隣接ノード情報として扱うことが可能となる。つまり、移動ノードＭ−ｕを時間分割による多重化ノードとして扱うことにより、無線ノードの位置推定精度をさらに向上させることができる。
【０２４４】
［４．７．シミュレーション評価］
（１）仮想的な固定ノードの使用による位置精度の評価
上述のように、固定ノード位置推定部６０は、固定ノードＮ−１〜Ｎ−ｋの位置を推定する際に、位置推定が完了した移動ノードＭ−ｕの隣接ノード情報を、仮想的な固定ノードの隣接ノード情報として使用する。
【０２４５】
仮想的な固定ノードを使用した場合における固定ノードの位置推定精度を評価するために、シミュレーションを行った。具体的には、仮想的な固定ノードを使用した場合と、仮想的な固定ノードを使用しない場合にとにおける固定ノードの位置推定精度を比較した。
【０２４６】
シミュレーション条件は、以下の通りである。仮想的な２次元のフィールドを想定した。２次元のフィールドの範囲は、縦３００ｍ及び横３００ｍである。固定ノード及び移動ノードを含む無線ノードの通信半径は、１ｍである。無線ノードの数は、５０である。アンカーノードの数は、３であり、固定ノード又は移動ノードの位置推定における仮の自己位置の更新回数は、３００回である。
【０２４７】
そして、仮想的な固定ノードを使用した場合における無線ノードの位置推定誤差を下記の式（８）を用いて算出した。
【０２４８】
【数８】
0006532606.tif 000009
【０２４９】
式（８）において、Ｅａｖｅ＿１は、仮想的な固定ノードを使用した場合における位置推定誤差である。Ｎは、無線ノードの数である。Ｗｉは、無線ノードの各々の真位置である。ｗｉは、無線ノードの各々の推定位置である。仮想的な固定ノードを使用しない場合における位置推定誤差Ｅａｖｅ＿２についても、式（８）を用いて算出した。
【０２５０】
この結果、仮想的な固定ノードを使用した場合における位置推定誤差Ｅａｖｅ＿１は、約１１ｍであった。仮想的な固定ノードを使用しない場合における位置推定誤差Ｅａｖｅ＿２は、約１８ｍであった。仮想的な固定ノードを使用した場合における位置推定誤差Ｅａｖｅ＿１は、仮想的な固定ノードを使用しない場合における位置推定誤差Ｅａｖｅ＿２の３分の２以下に改善されている。つまり、仮想的な固定ノードを用いて無線ノードの位置を推定することにより、無線ノードの位置推定精度を向上できることが確認された。
【０２５１】
（２）位置推定誤差の経時変化
上述のように、位置推定装置５による無線ノードの位置推定において、移動ノードの推定位置の更新頻度は、固定ノードの推定位置の更新頻度よりも高い。例えば、位置推定装置５は、１回目の固定ノードの位置推定を行ってから、２回目の固定ノードの位置推定を行うまでの間に、移動ノードの位置推定を２０回行う。
【０２５２】
上述のように移動ノードの位置推定を繰り返し行う場合における位置推定誤差の経時変化を評価するために、シミュレーションを行った。シミュレーション条件は、以下の通りである。仮想的な２次元のフィールドを想定した。２次元のフィールドの範囲は、縦３００ｍ及び横３００ｍである。固定ノード及び移動ノードを含む無線ノードの通信半径は、１ｍである。無線ノードの数は、３００である。具体的には、位置推定開始時における固定ノード及び移動ノードの各々の数を１５０に設定した。アンカーノードの数は、３である。固定ノード及び移動ノードの各々の位置推定における仮の自己位置の更新回数は、３００回である。固定ノードの位置推定を５回繰り返した後に、移動ノードの位置推定を２５回繰り返した。
【０２５３】
また、固定ノード又は移動ノードの位置推定が行われるたびに、一定の確率（０．５）で固定ノードを移動ノードに変化させ、無線ノードを移動ノードに変化させた。移動ノードを上記のフィールド範囲内でランダムに移動させた。移動ノードの位置推定を行うにあたって、移動ノードに変化した固定ノードの推定位置を使用しなかった。
【０２５４】
そして、固定ノードの位置推定及び移動ノードの位置推定を行うたびに、無線ノードの位置推定誤差を上記の式（８）を用いて算出した。上記式（８）において、Ｎは、固定ノード及び移動ノードを含む無線ノードの数である。Ｗｉは、無線ノードの各々の真位置である。ｗｉは、無線ノードの各々の推定位置である。
【０２５５】
図２４は、シミュレーションによる位置推定誤差の経時変化を示すグラフである。図２３において、横軸の「サイクル」は、固定ノード又は移動ノードの位置推定を行った回数を示す。
【０２５６】
図２４を参照して、位置推定回数が１０回までは、位置推定誤差が３．５以上であり、位置推定回数が１０回〜１５回において、位置推定誤差が２．０以下に低下している。これは、位置推定がされていない状態から位置推定を繰り返すことにより、各無線ノードの位置推定の精度が向上していることを示している。
【０２５７】
図２４において、位置推定誤差が２．０ｍ以下に低下している期間が周期的に現れている。位置推定誤差が２．０ｍ以下に低下している期間は、固定ノードの位置推定が行われている期間である。固定ノードの位置推定では、全ての固定ノードの隣接ノード情報が参照されるため、固定ノードの推定位置の精度が上がり、位置推定誤差が２．０ｍ以下に抑制されていることが示されている。
【０２５８】
位置推定誤差が２．０よりも高い期間は、移動ノードの位置推定が行われている期間に相当する。移動ノードの位置が推定されている期間における位置推定誤差は、概ね２〜２．５ｍである。固定ノードが所定の確率で移動ノードに変化するため、移動ノードの位置推定に利用することができる固定ノードの数が時間の経過とともに減少する。この結果、移動ノードの位置推定誤差が上昇すると考えられる。しかし、移動ノードの位置推定誤差が上昇したとしても、固定ノードの位置推定が定期的に行われるため、位置推定誤差が３ｍ以下に抑制されている。つまり、移動ノードの位置推定を行うにあたって、固定ノードの位置を定期的に推定することによって、位置推定誤差が３ｍ以下に抑制できることを確認できた。
【０２５９】
［変形例］
なお、上記実施の形態において、移動ノードＭ−１〜Ｍ−ｐが加速度センサ２４を備える例を説明したが、これに限られない。移動ノードＭ−１〜Ｍ−ｐは、加速度センサに代えて、地磁気センサ、ジャイロセンサなどを備えていてもよい。つまり、移動ノードＭ−１〜Ｍ−ｐは、自装置が移動しているか否かを判断することができるセンサを備えていればよい。
【０２６０】
また、上記実施の形態において、無線ノード及びシンク４が近距離無線通信を行う例を説明したが、これに限られない。無線ノードは、２つ以上の通信規格に対応していてもよい。例えば、無線ノードは、ＢＬＥ又はＩＥＥＥ８０２．１５．４を用いて、他の無線ノードと広告パケットの送受信を行う。そして、無線ノードは、ＢＬＥや、ＩＥＥＥ８０２．１５．４などよりも無線通信距離の長い通信規格（例えば、無線ＬＡＮ（Local Area Network）や、携帯電話通信網など）に準拠した無線通信を用いて、隣接ノード情報を含む通知パケットＤＴＧをシンク４に送信してもよい。無線ノードが通知パケットＤＴＧを送信する際に、無線ＬＡＮが用いられる場合、シンク４は、アクセスポイントに相当し、携帯電話通信網が用いられる場合、シンク４は、基地局に相当する。ここに挙げた通信規格は一例であり、無線ノードが使用する無線通信の通信規格は特に限定されない。また、図１では、シンク４が１つである場合を示しているが、無線ネットワーク１０は、２つ以上のシンク４を備えていてもよい。
【０２６１】
また、上記実施の形態において、無線ノードが固定ノードから移動ノードに変化したり、移動ノードから固定ノードに変化したりすることがない例を説明したが、これに限られない。上述のように、例えば、移動ノードＭ−１の隣接ノード情報２１Ｍに記録された移動ノードＭ−１の加速度が、所定の加速度以下である場合、分類部５２は、移動ノードＭ−１が固定ノードであると判断し、移動ノードＭ−１の隣接ノード情報を、固定ノード位置推定部６０に出力してもよい。この場合、固定ノード位置推定部６０は、固定ノードＮ−１〜Ｎ−ｋの隣接ノード情報に加えて、移動ノードＭ−１の隣接情報を用いて、固定ノードＮ−１〜Ｎ−ｋの各々についての固定トポロジと、移動ノードＭ−１についての固定トポロジとを生成すればよい。この結果、移動ノードＭ−１の位置についても、固定ノード位置推定処理（ステップＳ３）において推定される。
【０２６２】
また、固定ノードＮ−１〜Ｎ−ｋのうち、アンカーノードを除く固定ノードが、無線ノードに変化してもよい。例えば、固定ノードＮ−１がアンカーノードではなく、固定ノードＮ−１が加速度センサを備えていると仮定する。この場合、固定ノードＮ−１は、加速度センサにより検出された加速度を記録した隣接ノード情報を生成する。位置推定装置５において、分類部５２は、固定ノードＮ−１から送信された隣接ノード情報に記録されている加速度が所定の加速度以下である場合、固定ノードＮ−１が移動していないと判断する。一方、分類部５２は、固定ノードＮ−１から送信された隣接ノード情報に記録されている加速度が所定の加速度よりも大きい場合、固定ノードＮ−１が移動中であると判断し、固定ノードＮ−１を移動ノードとして扱うことを決定する。
【０２６３】
また、分類部５２は、各無線ノードの隣接ノード情報の時間的な変化に基づいて、各無線ノードが固定ノードであるか移動ノードであるかを決定してもよい。例えば、分類部５２は、固定ノードＮ−１の隣接ノード情報を新たに取得した場合、新たに取得した隣接ノード情報と、新たに取得した隣接ノード情報の直前に取得した固定ノードＮ−１の隣接ノード情報とを比較する。新たに取得した隣接ノード情報の内容が、直前に取得した隣接ノード情報の内容から変化している場合、分類部５２は、固定ノードＮ−１が移動中であると判断する。一方、新たに取得した隣接ノード情報の内容が、直前に取得した隣接ノード情報の内容から変化していない場合、分類部５２は、固定ノードＮ−１が移動していないと判断する。
【０２６４】
また、上記実施の形態において、仮想トポロジ生成部６６が、仮想トポロジを生成する際に用いられる仮想ノード間距離として、固定ノードの絶対座標から計算された距離を使用する場合を説明したが、これに限られない。仮想トポロジ生成部６６は、仮想ノード間距離として、ＩＥＥＥ８０２．１５．４でサポートされているＬＱＩ（Link Quality Indicator）を使用してもよい。ＬＱＩは、各無線ノードから送信されるパケットなどの無線通信品質を示すパラメータであり、各無線ノードの電界強度に相当する。例えば、移動ノードＭ−１は、図２に示す隣接ノード情報２１Ｍにおいて、隣接ノードの欄に、無線ノードの識別情報に加えて、広告パケット受信時のＬＱＩを記述してもよい。電界強度の大きさは、無線通信距離と相関関係があるため、仮想トポロジ生成部６６は、各無線ノードの隣接ノード情報に記録された全てのＬＱＩの代表値（平均値、中間値）を、仮想ノード間距離の初期値として使用することが可能である。
【０２６５】
また、上記実施の形態において、位置推定装置５は、仮想トポロジを用いることなく固定ノードＮ−１〜Ｎ−ｋの位置を推定してもよい。この場合、固定ノードＮ−１〜Ｎ−ｋの位置推定の演算量を削減することができるため、移動ノードＭ−１〜Ｍ−ｐの位置を迅速に推定することができる。
【０２６６】
また、上記実施の形態において、位置推定装置５が、移動ノードＭ−１〜Ｍ−ｋの位置を推定する例を説明したが、これに限られない。位置推定装置５は、移動ノードＭ−１〜Ｍ−ｐの位置を推定しなくてもよい。例えば、固定ノードのみが無線通信空間に配置されている場合においても、位置推定装置５を使用することが可能である。
【０２６７】
また、上記実施の形態に係る位置推定装置５の各機能ブロック（各機能部）の処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施の形態に係る位置推定装置５において、各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。例えば、位置推定装置５の構成を、図２５に示すような構成とすることにより、上記実施の形態に係る位置推定装置５の各機能ブロック（各機能部）の処理の一部または全部が実行されるものであってもよい。
【０２６８】
また、上記実施の形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。
【０２６９】
また、上記実施の形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２７０】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、大容量ＤＶＤ、次世代ＤＶＤ、半導体メモリを挙げることができる。
【０２７１】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２７２】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【０２７３】
Ｎ−１〜Ｎ−ｋ  固定無線ノード（固定ノード）
Ｍ−１〜Ｍ−ｐ  移動無線ノード（移動ノード）
４  シンク
５  位置推定装置
５１  取得部
５２  分類部
６０  固定ノード位置推定部
６１  固定トポロジ生成部
６２，７２  自己位置生成部
６３，７３  位置更新部
６４，７４  変換部
６５  トポロジ矛盾判定部
６６  仮想トポロジ生成部
７０  移動ノード位置推定部
７１  固定トポロジ生成部
【図１】
0006532606.tif 000010
【図２】
0006532606.tif 000011
【図３】
0006532606.tif 000012
【図４】
0006532606.tif 000013
【図５】
0006532606.tif 000014
【図６】
0006532606.tif 000015
【図７】
0006532606.tif 000016
【図８】
0006532606.tif 000017
【図９】
0006532606.tif 000018
【図１０】
0006532606.tif 000019
【図１１】
0006532606.tif 000020
【図１２】
0006532606.tif 000021
【図１３】
0006532606.tif 000022
【図１４】
0006532606.tif 000023
【図１５】
0006532606.tif 000024
【図１６】
0006532606.tif 000025
【図１７】
0006532606.tif 000026
【図１８】
0006532606.tif 000027
【図１９】
0006532606.tif 000028
【図２０】
0006532606.tif 000029
【図２１】
0006532606.tif 000030
【図２２】
0006532606.tif 000031
【図２３】
0006532606.tif 000032
【図２４】
0006532606.tif 000033
【図２５】
0006532606.tif 000034