以下、本願が開示するセンサ制御装置、センサシステム及びセンサ制御方法の実施の形態について、図面を参照して詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
(実施の形態1)
図1は、実施の形態1に係るセンサシステムの一例を示す図である。図1に示すセンサシステムは、複数のセンサノード(ノード)10、複数のゲートウェイ装置100、200、測定サーバ装置30、アプリケーションサーバ装置40及びユーザ端末50を有する。センサシステムに含まれるノード及びゲートウェイ装置の数は、任意であるものとする。
ノード10は、測定対象の状態を測定するセンサの機能を備えた端末装置である。ノード10は、屋外環境あるいは構造物の内部等における測定対象の状態、例えば温度、湿度、水位、風向又は人の動き等を測定する。各ノード10は、測定が実施される空間の測定地点ごとに散在している。
ゲートウェイ装置100、200は、それぞれ無線通信が可能な範囲に位置するノード10を収容し、収容するノード10が測定して得た測定データを収集する。そして、ゲートウェイ装置100、200は、収集した測定データを用いた回帰推定を実行し、それぞれのノード10の冗長性を計算し、冗長性に応じて各ノード10の測定頻度を設定する。すなわち、冗長性が低いノード10の測定頻度を高くし、冗長性が高いノード10の測定頻度を低くすることにより、センサシステム全体の消費電力を低減する。
ゲートウェイ装置100、200は、ネットワークNを介して互いに接続されており、無線通信が可能な範囲のノード10による測定データの相関性に応じて、収容するノード10を交換する。本実施の形態においては、ゲートウェイ装置100が無線通信可能な範囲のノード10がゲートウェイ装置200に収容される場合について説明する。
測定サーバ装置30は、ネットワークNを介してゲートウェイ装置100、200を含むすべてのゲートウェイ装置と接続され、各ゲートウェイ装置からセンサデータを収集する。収集されるセンサデータには、各ノード10が測定によって取得した測定データと、ゲートウェイ装置が測定データから推定した推定データとが含まれる。そして、測定サーバ装置30は、収集したセンサデータをアプリケーションサーバ装置40へ送信する。
アプリケーションサーバ装置40とユーザ端末50とは、ネットワークNを介して通信可能に接続されている。アプリケーションサーバ装置40に接続されるユーザ端末50の数は任意であるものとする。アプリケーションサーバ装置40は、センサデータの統計処理を実施し、例えば統計処理結果のグラフィック表示等をユーザ端末50へ提供する。
図2は、実施の形態1に係るノード10の構成を示すブロック図である。図2に示すノード10は、センサ11、バッテリー12、プロセッサ13、通信インタフェース(以下「通信I/F」と略記する)14及びメモリ15を有する。
センサ11は、測定対象の状態を測定して、測定の結果である測定値を出力する素子である。バッテリー12は、ノード10の電力源であって、例えば一次電池である。ノード10の各部は、バッテリー12からの電力を使用して駆動する。バッテリー12は、一次電池の他、各種発電素子で発電した電力を蓄電する二次電池を含むものであっても良い。
プロセッサ13は、例えばCPU(Central Processing Unit)、FPGA(Field Programmable Gate Array)又はDSP(Digital Signal Processor)などを備え、ノード10全体を制御する。プロセッサ13は、設定に応じた測定タイミングにおいてセンサ11による測定値を取得し、取得された測定値を含む測定データを生成する。本実施の形態においては、学習期間と運用期間とが設けられており、学習期間においては、すべてのノード10に共通の頻度でセンサ11による測定値が取得される。一方、運用期間においては、ノード10の冗長性に応じて測定の頻度が設定され、ノード10ごとに異なる測定タイミングでセンサ11による測定値が取得される。
通信I/F14は、ノード10の外部の通信先と通信する。具体的には、通信I/F14は、例えばプロセッサ13によって生成された測定データを、自ノードと無線通信可能な範囲にあるゲートウェイ装置へ送信する。また、通信I/F14は、例えば自ノードと無線通信可能な範囲にあるゲートウェイ装置から送信される、測定タイミングの制御情報を受信する。メモリ15は、例えばRAM(Random Access Memory)又はROM(Read Only Memory)などを備え、プロセッサ13によって処理が実行される際に、種々の情報を記憶する。
図3は、実施の形態1に係るゲートウェイ装置100の構成を示すブロック図である。ゲートウェイ装置100は、自装置から無線通信可能な範囲にあるノード10を収容するように他のゲートウェイ装置(ゲートウェイ装置200)に依頼するゲートウェイ装置である。図3に示すゲートウェイ装置100は、無線通信部100a、通信I/F100b、プロセッサ100c及びメモリ100dを有する。
無線通信部100aは、無線通信可能な範囲にあるノード10から送信される測定データを受信し、受信した測定データに対して所定の無線受信処理を施す。
通信I/F100bは、ネットワークNを介して他のゲートウェイ装置と通信可能に接続されており、例えばゲートウェイ装置200に対してノード10の収容要求を送信したり、収容要求に対する応答として収容可否の情報を受信したりする。
プロセッサ100cは、例えばCPU、FPGA又はDSPなどを備え、ゲートウェイ装置100全体を制御する。具体的には、プロセッサ100cは、測定データ取得部110、回帰推定部120、独立度算出部130、収容要求生成部140、収容可否取得部150、測定必要性取得部160、ノード設定部170及び測定データ送信部180を有する。
測定データ取得部110は、ゲートウェイ装置100と無線通信するノード10から送信され無線通信部100aによって受信された測定データを取得する。なお、本実施の形態においては、学習期間と運用期間とが設けられるため、測定データ取得部110は、学習期間においては、ゲートウェイ装置100と無線通信するすべてのノード10に共通の頻度で測定データを取得する。また、測定データ取得部110は、運用期間においては、ノード10ごとに異なる頻度で測定データを取得する。
回帰推定部120は、測定データを用いた回帰推定を実行する。すなわち、回帰推定部120は、1つのノード10の測定データを他のノード10の測定データから推定するための回帰モデルを生成し、回帰モデルにおける回帰係数を算出する。具体的には、回帰推定部120は、学習期間において取得された測定データを用いて、各ノード10の測定データ間の回帰モデルと回帰係数を求める。求められた回帰係数は、例えば図4に示す回帰モデルテーブルに格納される。
図4に示す回帰モデルテーブルは、センサ#1〜#4を含む複数のセンサによる測定値間の回帰係数を保持する。例えば推定対象の推定センサがセンサ#1である場合には、測定センサであるセンサ#1とセンサ#4の測定データからセンサ#1の測定値が推定可能であり、それぞれの測定データの回帰係数は0.74及び0.24であることがわかる。したがって、過去のある時点のセンサ#1及びセンサ#4の測定データにこれらの回帰係数を用いた演算を行うことにより、現在のセンサ#1の測定値を推定することができる。
図3に戻って、回帰推定部120は、学習期間に求められて回帰モデルテーブルに格納された回帰係数を用いて、運用期間に取得された一部のノード10の測定データから他のノード10における測定値を推定し、得られた推定データと測定データを含むセンサデータを出力する。
独立度算出部130は、学習期間において求められた回帰モデルに基づいて、それぞれのノード10の独立度を算出する。すなわち、独立度算出部130は、ノード10ごとに他のノード10との測定データの相関の低さを示す独立度を算出する。回帰モデルにおいては、あるノード10の測定値は、他のノード10の測定値を推定するために参照されたり、他のノード10の測定データを参照して推定されたりする。そこで、あるノード10について、このノード10の測定値を推定するために測定データが参照されるノード10の数を示す参照数と、このノード10の測定データを参照して測定値が推定されるノード10の数を示す被参照数とから、以下の式(1)によって独立度を定義する。
独立度=1/(参照数×被参照数) …(1)
なお、ノード10間の参照及び被参照関係の有無は、各ノード10に対応する回帰係数が一定の条件を満たすか否かによって決定される。例えば、あるノードAの回帰モデルとしてLASSO回帰が用いられる場合、このノードAと回帰モデルにおいて回帰係数が0でない値をとるノードBとの間に参照・被参照関係があるものとみなす方法が考えられる。
上式(1)が用いられることにより、例えば図5に示すように、センサ#1〜#5の測定データx1〜x5からそれぞれのセンサ#1〜#5の推定データy1〜y5が得られる場合、それぞれの参照数及び被参照数からセンサ#1〜#5の独立度が算出される。具体的に例を挙げると、センサ#1の測定データx1は、センサ#1〜#3の3つのセンサの推定データy1〜y3を算出するのに参照されるため、センサ#1の被参照数は3である。一方、センサ#1の推定データy1は、センサ#1、#4の2つのセンサの測定データx1、x4を参照して算出されるため、センサ#1の参照数は2である。これらの参照数及び被参照数を上式(1)に適用すると、センサ#1の独立度を0.17と算出することができる。独立度は、参照するセンサの数が少ないほど、また参照されるセンサの数が少ないほど大きい値となるため、他のセンサの測定値との相関が低いセンサほど大きくなる。例えば、図5に示す例では、センサ#5は、他のセンサから参照されることがなく、他のセンサを参照することもないため、独立度は最大の1.00となる。
図3に戻って、収容要求生成部140は、独立度算出部130によって算出された独立度が大きいノード10を収容するように他のゲートウェイ装置に要求する収容要求を生成する。具体的には、収容要求生成部140は、ゲートウェイ装置100と無線通信するノード10のうち独立度が最も大きいノード10の識別情報とこのノード10から学習期間に取得された測定データとを含む収容要求を生成する。なお、収容要求生成部140は、独立度が最も大きいノード10だけではなく、独立度が大きい順に所定数のノード10についての収容要求を生成しても良く、独立度が所定の閾値以上のノード10についての収容要求を生成しても良い。
そして、収容要求生成部140は、生成した収容要求をあらかじめ定められた他のゲートウェイ装置へ、通信I/F100bを介して送信する。すなわち、ゲートウェイ装置200を含む他のゲートウェイ装置がゲートウェイ装置100による収容要求の送信先としてあらかじめ定められているため、収容要求生成部140は、このうちの1つのゲートウェイ装置へ収容要求を送信する。
収容可否取得部150は、収容要求の送信先のゲートウェイ装置から送信されて通信I/F100bによって受信される収容可否の情報を取得する。収容可否の情報には、他のゲートウェイ装置に対して収容要求したノード10が収容可能であるか否かが示されている。ここで、収容要求したノード10が収容可能である場合には、このノード10の測定データと他のゲートウェイ装置が無線通信可能なノード10の測定データとの相関が高いことを意味している。
そして、収容可否取得部150は、ノード10が収容可能である場合は、その旨を測定必要性取得部160へ通知し、ノード10が収容不可能である場合は、その旨を収容要求生成部140へ通知する。ノード10が収容不可能であることが通知された収容要求生成部140は、まだ収容要求を送信していない他のゲートウェイ装置に収容要求を送信する。
測定必要性取得部160は、他のゲートウェイ装置によってノード10が収容可能であることが収容可否取得部150から通知された後、このゲートウェイ装置から送信されて通信I/F100bによって受信される測定必要性の情報を取得する。測定必要性の情報には、他のゲートウェイ装置に収容されるノード10の測定データが推定データを得るための回帰推定に必要であるか否かが示されている。測定必要性取得部160は、他のゲートウェイ装置に収容されるノード10の測定データの必要性の有無をノード設定部170及び測定データ送信部180へ通知する。
ノード設定部170は、最終的にゲートウェイ装置100が収容するノード10の学習期間における測定データの回帰推定結果に基づいて、それぞれのノード10の冗長性を判定し、各ノード10の運用期間における測定タイミングを設定する。すなわち、ノード設定部170は、回帰推定部120による回帰推定において、多くのノード10の測定値の推定に利用される測定データを取得するノード10の冗長性が低いと判定する。そして、ノード設定部170は、冗長性が低いノード10の測定頻度を高くするように設定する。一方、ノード設定部170は、回帰推定部120による回帰推定において、他のノード10の測定データとの相関が高い測定データを取得するノード10の冗長性が高いと判定する。そして、ノード設定部170は、冗長性が高いノード10の測定頻度を低くするように設定する。なお、ノード設定部170による冗長性の判定は、例えば回帰推定部120がGroupLasso技術を用いて測定データ間の回帰係数の最適化を行った結果に基づいて実行されても良い。
また、ノード設定部170は、測定必要性取得部160からの通知に従って、他のゲートウェイ装置に収容されたノード10のうち、測定データが必要であるノード10の測定頻度を高くするように設定する。一方、ノード設定部170は、測定データが不要であるノード10の測定頻度を低くするように設定する。
測定データ送信部180は、測定必要性取得部160からの通知に従って、他のゲートウェイ装置に収容されたノード10のうち、測定データが必要であるノード10の測定データを取得し、通信I/F100bを介して他のゲートウェイ装置へ送信する。すなわち、測定データ送信部180は、測定データ取得部110によって取得された測定データから、他のゲートウェイ装置に収容されたノード10の測定データを抽出し、このノード10を収容するゲートウェイ装置へ送信する。
メモリ100dは、例えばRAM又はROMなどを備え、プロセッサ100cによって処理が実行される際に、種々の情報を記憶する。
次に、ゲートウェイ装置100からの収容要求の送信先となるゲートウェイ装置200の構成について説明する。図6は、実施の形態1に係るゲートウェイ装置200の構成を示すブロック図である。ゲートウェイ装置200は、他のゲートウェイ装置(ゲートウェイ装置100)からノード10を収容するように依頼されるゲートウェイ装置である。図6に示すゲートウェイ装置200は、無線通信部200a、通信I/F200b、プロセッサ200c及びメモリ200dを有する。
無線通信部200aは、無線通信可能な範囲にあるノード10から送信される測定データを受信し、受信した測定データに対して所定の無線受信処理を施す。
通信I/F200bは、ネットワークNを介して他のゲートウェイ装置と通信可能に接続されており、例えばゲートウェイ装置100からノード10の収容要求を受信したり、収容要求に対する応答として収容可否の情報を送信したりする。
プロセッサ200cは、例えばCPU、FPGA又はDSPなどを備え、ゲートウェイ装置200全体を制御する。具体的には、プロセッサ200cは、測定データ取得部210、回帰推定部220、収容要求取得部230、独立度算出部240、収容可否判定部250、測定必要性通知部260、ノード設定部270及び測定データ受信部280を有する。
測定データ取得部210は、ゲートウェイ装置200と無線通信するノード10から送信され無線通信部200aによって受信された測定データを取得する。なお、ゲートウェイ装置100の測定データ取得部110と同様に、測定データ取得部210は、学習期間においては、ゲートウェイ装置200と無線通信するすべてのノード10に共通の頻度で測定データを取得する。また、測定データ取得部210は、運用期間においては、ノード10ごとに異なる頻度で測定データを取得する。
また、測定データ取得部210は、運用期間において、他のゲートウェイ装置から送信されて測定データ受信部280によって受信される測定データを取得する。
回帰推定部220は、測定データを用いた回帰推定を実行する。すなわち、回帰推定部220は、1つのノード10の測定データを他のノード10の測定データから推定するための回帰モデルを生成し、回帰モデルにおける回帰係数を算出する。具体的には、回帰推定部220は、学習期間において取得された測定データを用いて、各ノード10の測定データ間の回帰モデルと回帰係数を求める。
収容要求取得部230は、他のゲートウェイ装置から送信されて通信I/F200bによって受信された収容要求を取得する。具体的には、収容要求取得部230は、ゲートウェイ装置100と無線通信するノード10のうち独立度が最も大きいノード10の識別情報とこのノード10から学習期間に取得された測定データとを含む収容要求を取得する。なお、収容要求取得部230は、独立度が最も大きいノード10だけではなく、独立度が大きい順に所定数のノード10についての収容要求を取得しても良く、独立度が所定の閾値以上のノード10についての収容要求を取得しても良い。
独立度算出部240は、学習期間において求められた回帰モデルに基づいて、それぞれのノード10の独立度を算出する。また、独立度算出部240は、収容要求が受信された場合に、学習期間において取得された測定データと、収容要求に含まれる測定データとを用いた回帰推定の結果から、それぞれのノード10の独立度を算出する。すなわち、独立度算出部240は、収容要求されたノード10の測定データを含まない回帰推定の結果から独立度を算出するとともに、収容要求されたノード10の測定データを含む回帰推定の結果からも独立度を算出する。独立度の算出に際しては、上式(1)を用いることができる。
収容可否判定部250は、独立度算出部240によって算出された独立度に基づいて、ゲートウェイ装置100から収容要求されたノード10をゲートウェイ装置200が収容するか否かを判定する。具体的には、収容可否判定部250は、収容要求されたノード10の測定データを回帰推定に含めることによって、独立度の平均が小さくなるか否かによって収容可否を判定する。したがって、収容可否判定部250は、収容要求されたノード10の測定データを含む回帰推定の結果から算出された独立度の平均値と、収容要求されたノード10の測定データを含まない回帰推定の結果から算出された独立度の平均値とを比較する。この比較の結果、収容可否判定部250は、収容要求されたノード10の測定データを含む回帰推定の結果から算出された独立度の平均値の方が小さい場合に、収容可能であると判定する。そして、収容可否判定部250は、収容要求されたノード10が収容可能であることを示す情報を通信I/F200bからゲートウェイ装置100へ送信する。また、収容可否判定部250は、収容要求されたノード10が収容可能であることを測定必要性通知部260へ通知する。
一方、収容可否判定部250は、収容要求されたノード10の測定データを含む回帰推定の結果から算出された独立度の平均値の方が大きい場合に、収容不可能であると判定する。そして、収容可否判定部250は、収容要求されたノード10が収容不可能であることを示す情報を通信I/F200bからゲートウェイ装置100へ送信する。
測定必要性通知部260は、収容要求されたノード10が収容可能である場合に、このノード10の測定データを含む回帰推定結果に基づいて、収容要求されたノード10の測定データが必要であるか否かを判定する。すなわち、測定必要性通知部260は、回帰推定部220による回帰推定結果に基づいて、収容要求されたノード10の冗長性を判定し、冗長性が低い場合に測定データが必要であると判定する。そして、測定必要性通知部260は、測定データが必要であることを示す情報を通信I/F200bからゲートウェイ装置100へ送信する。また、測定必要性通知部260は、収容要求されたノード10の冗長性が高い場合には、測定データが不要であると判定し、その旨を示す情報をゲートウェイ装置100へ送信する。
ノード設定部270は、最終的にゲートウェイ装置200が収容するノード10の学習期間における測定データの回帰推定結果に基づいて、それぞれのノード10の冗長性を判定し、各ノード10の運用期間における測定タイミングを設定する。すなわち、ノード設定部270は、回帰推定部220による回帰推定において、多くのノード10の測定値の推定に利用される測定データを取得するノード10の冗長性が低いと判定する。そして、ノード設定部270は、冗長性が低いノード10の測定頻度を高くするように設定する。一方、ノード設定部270は、回帰推定部220による回帰推定において、他のノード10の測定データとの相関が高い測定データを取得するノード10の冗長性が高いと判定する。そして、ノード設定部270は、冗長性が高いノード10の測定頻度を低くするように設定する。
測定データ受信部280は、測定データが必要であることを示す情報の送信先である他のゲートウェイ装置から、このゲートウェイ装置と無線通信可能なノード10の測定データを受信し、測定データ取得部210へ出力する。すなわち、測定データ受信部280は、例えばゲートウェイ装置100から収容要求されたノード10の測定データをゲートウェイ装置100から受信する。
メモリ200dは、例えばRAM又はROMなどを備え、プロセッサ200cによって処理が実行される際に、種々の情報を記憶する。
次いで、上記のように構成されたゲートウェイ装置100、200による動作について、図7に示すシーケンス図を参照しながら説明する。図7は、ゲートウェイ装置100と無線通信可能なノード10がゲートウェイ装置200によって収容される場合の動作を示す。
学習期間において、ゲートウェイ装置100と無線通信可能なノード10の測定データが取得されると、回帰推定部120によって測定データの回帰推定が実行される。そして、回帰推定の結果から、各ノード10の独立度が算出され、独立度が大きいノード10(以下「独立ノード」という)が特定される。独立ノードの測定データは、他のノード10の測定データとの相関が低く、回帰推定の精度を低下させる要因となる。そこで、独立ノードの収容を要求する収容要求が生成され、あらかじめ定められたゲートウェイ装置200へ送信される(ステップS101)。収容要求には、独立ノードの識別情報と測定データが含まれる。
収容要求がゲートウェイ装置200によって受信されると、独立ノードの測定データとゲートウェイ装置200と無線通信可能なノード10の測定データとを用いた回帰推定が実行され、各ノード10の独立度が算出される。そして、独立ノードの測定データを回帰推定に含めることにより、独立度の平均値が小さくなったか否かによって、独立ノードがゲートウェイ装置200によって収容可能であるか否かが判定される(ステップS102)。すなわち、独立ノードの測定データを含まない回帰推定結果から算出される独立度の平均値よりも、独立ノードの測定データを含む回帰推定結果から算出される独立度の平均値が小さければ、独立ノードがゲートウェイ装置200によって収容可能であると判定される。ここでは、独立ノードがゲートウェイ装置200によって収容可能であると判定されたものとして説明を進める。
独立ノードが収容可能であると判定されると、その旨を示す情報がゲートウェイ装置200からゲートウェイ装置100へ送信される(ステップS103)。なお、独立ノードが収容不可能であると判定された場合は、その旨を示す情報がゲートウェイ装置200からゲートウェイ装置100へ送信される。
独立ノードが収容可能であると判定された場合には、ゲートウェイ装置200によって、独立ノードの測定データを含む回帰推定結果から独立ノードの測定データが必要であるか否かが判定される(ステップS104)。すなわち、ゲートウェイ装置200での回帰推定における独立ノードの冗長性が判定され、独立ノードの冗長性が低い場合に独立ノードの測定データが必要であると判定される。一方、独立ノードの冗長性が高い場合には、独立ノードによる測定値は推定可能であるため、独立ノードの測定データが不要であると判定される。ここでは、独立ノードの測定データが必要であると判定されたものとして説明を進める。
独立ノードの測定データが必要であると判定されると、その旨を示す情報がゲートウェイ装置200からゲートウェイ装置100へ送信される(ステップS105)。なお、独立ノードの測定データが不要であると判定された場合には、その旨を示す情報がゲートウェイ装置200からゲートウェイ装置100へ送信される。
独立ノードの測定データが必要であることが通知されると、ゲートウェイ装置100によって、ゲートウェイ装置100と無線通信可能なノード10の測定タイミングの設定が実行される(ステップS106)。すなわち、最終的にゲートウェイ装置100に収容されるノード10に関する回帰推定結果から、冗長性が低いノード10の測定頻度を高くするように各ノード10の測定タイミングが設定される。また、ゲートウェイ装置200に収容される独立ノードの測定データが必要であると通知されていることから、独立ノードの測定頻度も高く設定される。これにより、ゲートウェイ装置100において回帰推定に用いられるノード10の測定データと、ゲートウェイ装置200において回帰推定に用いられる独立ノードの測定データとが高い頻度で取得されるようになる。
一方、ゲートウェイ装置200においては、独立ノードを含めた最終的にゲートウェイ装置200に収容されるノード10に関する回帰推定結果から、冗長性が低いノード10の測定頻度を高くするように各ノード10の測定タイミングが設定される(ステップS107)。これにより、ゲートウェイ装置200において回帰推定に用いられるノード10の測定データが高い頻度で取得されるようになる。
これらのノード設定では、独立ノードがゲートウェイ装置200に収容されているため、相関が高い測定データを用いた回帰推定結果に基づいて各ノード10の冗長性が判定されている。このため、それぞれのゲートウェイ装置における回帰推定の精度が高く、ノード10の冗長性の判定も精度が高い。結果として、測定頻度を低くするノード10を適切に決定することができ、センサシステム全体の消費電力の低減を図ることができる。
ノード10の測定タイミングが設定された後、運用期間においては、測定頻度が高く設定されたノード10から測定データが取得される(ステップS108)。ゲートウェイ装置100によって取得された測定データのうち独立ノードの測定データは、ゲートウェイ装置200へ転送され(ステップS109)、ゲートウェイ装置200における回帰推定に用いられる(ステップS110)。また、ゲートウェイ装置100においても、独立ノードを除いて、ゲートウェイ装置100に収容されるノード10の測定データを用いた回帰推定が実行される。これらの回帰推定は、それぞれのゲートウェイ装置が直接無線通信可能なノード10に限らず、測定データの相関が高いノード10を1つのゲートウェイ装置が収容して実行される。このため、回帰推定の精度が高く、測定データから正確な推定データを得ることができる。結果として、すべてのノード10から測定データが取得されなくても、回帰推定によってすべてのノード10の正確なセンサデータを取得することができる。
次に、独立ノードの収容を要求するゲートウェイ装置100によるセンサ制御方法について、図8に示すフロー図を参照しながら説明する。
学習期間においては、ゲートウェイ装置100と無線通信可能なノード10の測定データが無線通信部100aによって受信され、測定データ取得部110によって取得される。学習期間に取得された測定データは、学習データとして蓄積される(ステップS201)。そして、回帰推定部120によって、蓄積された学習データを用いた回帰推定が実行される。すなわち、各ノード10の過去の時点の測定データから現時点の測定値を推定する回帰モデルと回帰係数がノード10ごとに求められる。回帰モデルでは、あるノード10の測定値を推定するために、相関が高い他のノード10の測定データが参照される。
回帰推定が実行されると、独立度算出部130によって、各ノード10の独立度が算出される(ステップS202)。具体的には、ノード10ごとの回帰モデルにおける参照数及び被参照数を上式(1)に適用することにより、ノード10ごとに独立度が算出される。あるノード10の独立度は、このノード10の測定データと他のノード10の測定データとの相関の低さを示す。そこで、収容要求生成部140によって、他のノード10の測定データとの相関が低く独立度が大きい独立ノードが選択される。具体的には、例えば独立度が最大のノード10が独立ノードとして選択されても良いし、独立度が所定の閾値以上のノード10が独立ノードとして選択されても良い。
独立ノードが選択されると、収容要求生成部140によって、独立ノードの識別情報と測定データとを含む収容要求が生成され、あらかじめ定められたゲートウェイ装置200へ送信される(ステップS203)。収容要求の送信後、送信先のゲートウェイ装置200から独立ノードの収容可否を示す情報が送信され、通信I/F100bによって受信される(ステップS204)。
収容可否を示す情報は、収容可否取得部150によって取得され、独立ノードがゲートウェイ装置200によって収容可能であるか否かが判定される(ステップS205)。収容可否取得部150によって取得された情報が収容不可能であることを示す場合には(ステップS205No)、その旨が収容要求生成部140へ通知される。そして、収容要求生成部140によって、収容要求の送信先としてあらかじめ定められたすべてのゲートウェイ装置に収容要求を送信済みであるか否かが判定される(ステップS206)。この判定の結果、まだ収容要求を未送信のゲートウェイ装置があれば(ステップS206No)、このゲートウェイ装置へ収容要求が送信される(ステップS203)。一方、すべてのゲートウェイ装置に収容要求を送信済みであれば(ステップS206Yes)、独立ノードを収容可能なゲートウェイ装置がないことになるため、処理を終了する。
ステップS205における判定の結果、ゲートウェイ装置200によって独立ノードを収容可能である場合には(ステップS205Yes)、独立ノードの測定データが必要であるか否かを示す測定必要性の情報がゲートウェイ装置200から受信される(ステップS207)。測定必要性の情報は、測定必要性取得部160によって取得され、独立ノードの測定データが必要であるか否かが判定される(ステップS208)。独立ノードに関する測定必要性は、独立ノードの測定データと相関が高い測定データを用いた回帰推定が実行されるゲートウェイ装置200によって判断されている。このため、測定必要性の精度が高い。
独立ノードの測定データが必要である場合には(ステップS208Yes)、ノード設定部170によって、独立ノードの測定頻度を高くするように測定タイミングが設定される(ステップS209)。この結果、運用期間においては、高い頻度で独立ノードから測定データが受信されるため、測定データ送信部180によって、独立ノードの測定データがゲートウェイ装置200へ送信される(ステップS210)。
一方、独立ノードの測定データが不要である場合には(ステップS208No)、ノード設定部170によって、独立ノードの測定頻度を低くするように測定タイミングが設定される(ステップS211)。この結果、運用期間において、独立ノードから測定データが受信されなくなるが、ゲートウェイ装置200における回帰推定によって推定された推定データが受信される(ステップS213)。推定データは、独立ノードの測定データと相関が高い測定データを用いた回帰推定によって得られるため、独立ノードの測定値として、精度が高い推定データがゲートウェイ装置200から受信される。
なお、独立ノードの測定データが必要な場合も不要な場合も、ノード設定部170によって、学習データの回帰推定結果から各ノード10の冗長性が判定され、冗長性が低く高頻度での測定が必要なノード10の測定頻度は高く設定される。また、冗長性が高く高頻度での測定が不要なノード10の測定頻度は低く設定される。これにより、センサシステム全体で不要な測定が削減され、消費電力の低減を図ることができる。
次に、独立ノードの収容を要求されるゲートウェイ装置200による収容センサ決定方法について、図9に示すフロー図を参照しながら説明する。
学習期間においては、ゲートウェイ装置200と無線通信可能なノード10の測定データが無線通信部200aによって受信され、測定データ取得部210によって取得される。学習期間に取得された測定データは、学習データとして蓄積される(ステップS301)。そして、回帰推定部220によって、蓄積された学習データを用いた回帰推定が実行される。すなわち、各ノード10の過去の時点の測定データから現時点の測定値を推定する回帰モデルと回帰係数がノード10ごとに求められる。
また、ゲートウェイ装置100でも学習データが蓄積され、独立ノードの識別情報と測定データとを含む収容要求がゲートウェイ装置200へ送信される。収容要求は、通信I/F200bによって受信され(ステップS302)、収容要求取得部230によって取得される。
収容要求に含まれる独立ノードの測定データは、回帰推定部220へ出力され、ゲートウェイ装置200に蓄積された学習データと独立ノードの測定データとを用いた回帰推定が実行される。すなわち、ゲートウェイ装置200と無線通信するノード10に加えて独立ノードの測定データを用いた回帰推定が実行される。そして、独立度算出部240によって、独立ノードの測定データを含まない回帰推定結果からノード10ごとの独立度が算出されるとともに、独立ノードの測定データを含む回帰推定結果からもノード10ごとの独立度が算出される(ステップS303)。
独立度算出部240によって独立度が算出されると、収容可否判定部250によって、独立ノードがゲートウェイ装置200によって収容可能であるか否かが判定される(ステップS304)。具体的には、収容可否判定部250によって、独立ノードの測定データを含まない回帰推定結果から算出された独立度の平均値と、独立ノードの測定データを含む回帰推定結果から算出された独立度の平均値とが比較される。そして、独立ノードの測定データを含まない方が独立度の平均値が小さい場合には、独立ノードを収容することにより測定データの相関が低くなることから、独立ノードが収容不可能であると判定される(ステップS304No)。この場合は、独立ノードの収容を拒否する旨の情報が、収容可否判定部250から通信I/F200bを介してゲートウェイ装置100へ送信される(ステップS306)。
一方、独立ノードの測定データを含む方が独立度の平均値が小さい場合には、独立ノードを収容することにより測定データの相関が高くなることから、独立ノードが収容可能であると判定される(ステップS304Yes)。この場合は、独立ノードの収容を許可する旨の情報が、収容可否判定部250から通信I/F200bを介してゲートウェイ装置100へ送信される(ステップS305)。
ゲートウェイ装置200によって収容されるノード10が確定すると、独立ノードを含むこれらのノード10の測定データを用いた回帰推定が回帰推定部220によって実行される(ステップS307)。この回帰推定では、他のゲートウェイ装置から収容要求され、収容が許可されたノード10の測定データと、ゲートウェイ装置200と無線通信するノード10のうち他のゲートウェイ装置に収容されていないノード10の測定データとが用いられる。すなわち、最終的にゲートウェイ装置200に収容されるノード10の測定データを用いた回帰推定が実行され、これらのノード10の測定データを関連付ける回帰モデルと回帰係数が求められる。
回帰モデルが求められることにより、それぞれのノード10について、測定データが必要であるか、他のノード10の測定データから測定値を推定可能であるかが決定される。そこで、測定必要性通知部260によって、独立ノードの測定データが必要であるか否かが判定され(ステップS308)、独立ノードの測定データが必要である場合には(ステップS308Yes)、測定データを要求する情報が通信I/F200bからゲートウェイ装置100へ送信される(ステップS309)。そして、運用期間においては、ゲートウェイ装置100から送信された独立ノードの測定データが、測定データ受信部280によって受信される(ステップS310)。独立ノードの測定データは、測定データ取得部210によって取得された測定データとともに回帰推定部220へ出力され、測定データが取得されていないノード10の測定値が推定される。そして、測定データと推定データとを含むセンサデータが回帰推定部220から出力される。
一方、ステップS308の判定において、独立ノードの測定データが不要である場合には(ステップS308No)、測定データが不要であり、推定データを送付する旨の情報が通信I/F200bからゲートウェイ装置100へ送信される(ステップS311)。そして、運用期間においては、回帰推定部220によって独立ノードの測定値が推定され、得られた推定データがゲートウェイ装置100へ送信される(ステップS312)。
以上のように、本実施の形態によれば、ゲートウェイ装置が無線通信可能なノードのうち独立度が大きいノードを他のゲートウェイ装置に収容させ、ゲートウェイ装置単位で収容するノードの測定データの回帰推定を実行し、冗長性に応じてノードの測定頻度を設定する。このため、測定データの相関が高いノードを1つのゲートウェイ装置に収容させて回帰推定を実行することができ、回帰推定の精度を向上することができる。結果として、ゲートウェイ装置単位で回帰推定を実行しても、データの精度の低下を抑制しつつ消費電力の低減を図ることができる。
(実施の形態2)
実施の形態2の特徴は、ゲートウェイ装置が自装置の近隣にあるゲートウェイ装置を特定し、近隣のゲートウェイ装置に対して収容要求を送信する点である。
実施の形態2に係るセンサシステム及びノードの構成は、実施の形態1(図1、2)と同様であるため説明を省略する。実施の形態2においては、ゲートウェイ装置100の近隣にゲートウェイ装置200が位置するものとする。
図10は、実施の形態2に係るゲートウェイ装置100の構成を示すブロック図である。図10において、図3と同じ部分には同じ符号を付し、その説明を省略する。図10に示すゲートウェイ装置100は、図3に示すゲートウェイ装置100に近隣ゲートウェイ決定部(以下「近隣GW決定部」と略記する)310を追加した構成を採る。
近隣GW決定部310は、各ゲートウェイ装置と各ノード10間で送受信されるビーコン情報の受信状況に基づいて、ゲートウェイ装置100の近隣にあるゲートウェイ装置
(近隣GW)を決定する。具体的には、例えば各ゲートウェイ装置が自装置の識別情報を含むビーコン情報を送信する場合、近隣GW決定部310は、ゲートウェイ装置100と無線通信可能なノード10から、当該ノード10が受信したすべてのビーコン情報に対応するゲートウェイ装置の情報を取得する。そして、近隣GW決定部310は、ゲートウェイ装置100以外のゲートウェイ装置それぞれについて、ゲートウェイ装置100と無線通信可能なノード10全体に占めるビーコン情報を受信したノード10の割合をエリア重複率として算出する。すなわち、例えばゲートウェイ装置100と無線通信可能なノード10が3個存在し、そのうちの2個のノード10がゲートウェイ装置200のビーコン情報を受信している場合、ゲートウェイ装置100とゲートウェイ装置200のエリア重複率は約67%(≒2/3)と算出される。
近隣GW決定部310は、それぞれのゲートウェイ装置についてエリア重複率を算出した後、エリア重複率を所定の閾値と比較し、エリア重複率が所定の閾値位以上のゲートウェイ装置を近隣GWであると決定する。そして、近隣GW決定部310は、決定した近隣GWを収容要求生成部140へ通知する。
本実施の形態においては、収容要求生成部140は、近隣GW決定部310から通知された近隣GWに対して、独立ノードの収容要求を送信する。
次いで、実施の形態2に係る近隣GW決定方法について、図11に示すフロー図を参照しながら説明する。
各ゲートウェイ装置は、自装置の識別情報を含むビーコン情報を周期的に送信する。このため、ゲートウェイ装置100もビーコン情報を送信する(ステップS401)。送信されたビーコン情報は、それぞれのゲートウェイ装置と無線通信可能な範囲にあるノード10によって受信される。そして、ノード10は、受信したビーコン情報のRSSI(Received Signal Strength Indicator:受信信号強度)を測定し、RSSIが所定の閾値以上のビーコン情報からゲートウェイ装置の識別情報を取得する。ノード10は、取得した識別情報を含むゲートウェイ情報(GW情報)を自ノードと接続するゲートウェイ装置100へ送信する。このとき、ノード10は、ゲートウェイ装置100と接続しているが、ゲートウェイ装置100以外の無線通信可能な範囲にあるゲートウェイ装置からのビーコン情報も受信する。したがって、ノード10は、ゲートウェイ装置100だけではなく他のゲートウェイ装置の識別情報を含むGW情報をゲートウェイ装置100へ送信する。
ノード10から送信されたGW情報は、ゲートウェイ装置100によって受信される(ステップS402)。受信されたGW情報は、近隣GW決定部310によって取得され、各ノード10から送信されたGW情報が集計されることにより、エリア重複率が算出される(ステップS403)。すなわち、ゲートウェイ装置100以外のゲートウェイ装置それぞれについて、ビーコン情報を受信したノード10の数の割合がエリア重複率として算出される。あるゲートウェイ装置のエリア重複率は、ゲートウェイ装置100に接続するノード10のうち、当該ゲートウェイ装置からのビーコン情報を受信したノード10の数が占める割合である。このため、エリア重複率が高いゲートウェイ装置は、ゲートウェイ装置100と共通する多くのノード10と無線通信可能であり、ゲートウェイ装置100の近隣にあると考えられる。
それぞれのゲートウェイ装置についてのエリア重複率が算出されると、エリア重複率が所定値以上のゲートウェイ装置がゲートウェイ装置100の近隣GWであると決定される(ステップS404)。決定された近隣GWは、収容要求生成部140へ通知され、近隣GWに対して独立ノードの収容要求が送信される。近隣GWは、ゲートウェイ装置100の近隣にあるゲートウェイ装置であることから、ゲートウェイ装置100と無線通信可能なノード10の測定データと相関が高い測定データを取得するノード10は、近隣GWと無線通信可能である可能性が高い。このため、近隣GWに対して独立ノードの収容要求を送信することにより、独立ノードが収容される可能性を高めることができる。
このように、本実施の形態においては、ゲートウェイ装置100が近隣GWを決定し、近隣GWに対して収容要求を送信する。これ以外のゲートウェイ装置100の動作は、実施の形態1と同様である。
以上のように、本実施の形態によれば、ゲートウェイ装置が自装置の近隣にある近隣GWを特定し、特定した近隣GWを収容要求の送信先とする。このため、測定データの相関が高いノードを収容するゲートウェイ装置に対して収容要求を送信し、独立ノードが収容される可能性を高めることができる。
なお、上記実施の形態2においては、ゲートウェイ装置がビーコン情報を送信する場合に近隣GWを決定する方法を説明したが、各ノード10がビーコン情報を送信する場合にも近隣GWを決定することが可能である。図12は、各ノード10がビーコン情報を送信する場合の近隣GW決定方法を示すフロー図である。
各ノード10は、自ノードの識別情報を含むビーコン情報を周期的に送信する。このため、ゲートウェイ装置100と無線通信可能なノード10もビーコン情報を送信し、ゲートウェイ装置100によってビーコン情報が受信される(ステップS501)。受信されたビーコン情報の中には、他のゲートウェイ装置に接続するノード10のビーコン情報も含まれる。
ゲートウェイ装置100は、受信したビーコン情報のRSSIを測定し、RSSIが所定の閾値以上のビーコン情報からノード10の識別情報を取得する(ステップS502)。ゲートウェイ装置100は、取得した識別情報の中に他のゲートウェイ装置に接続するノード10の識別情報が含まれるか否かを判定する(ステップS503)。なお、各ゲートウェイ装置には、接続するノード10があらかじめ登録されており、それぞれのゲートウェイ装置に接続するノード10の情報は、すべてのゲートウェイ装置が共有しているものとする。このため、ゲートウェイ装置100は、ノード10から受信したビーコン情報を参照することにより、このノード10が他のゲートウェイ装置に接続するノード10であるか否かを判定することができる。
ビーコン情報に他のゲートウェイ装置に接続するノード10の識別情報が含まれる場合には(ステップS503Yes)、ゲートウェイ装置100は、このノード10が接続する他のゲートウェイ装置に対して、ノード10の識別情報を含むノード情報を送信する(ステップS504)。これにより、ゲートウェイ装置100は、自装置と接続していないノード10からビーコン情報を受信したことを、このノード10と接続するゲートウェイ装置に通知することができる。
ノード情報を送信した後、又は他のゲートウェイ装置に接続するノード10からビーコン情報を受信していない場合(ステップS503No)、ゲートウェイ装置100は、他のゲートウェイ装置からノード情報を受信する(ステップS505)。すなわち、ゲートウェイ装置100と接続するノード10のうち、他のゲートウェイ装置によってビーコン情報が受信されたノード10の識別情報を含むノード情報を受信する。
そして、各ゲートウェイ装置から受信されたノード情報が集計されることにより、エリア重複率が算出される(ステップS506)。すなわち、ノード情報の送信元のゲートウェイ装置それぞれについて、ゲートウェイ装置100に接続するノード10のうちビーコン情報が受信されたノード10の数の割合がエリア重複率として算出される。あるゲートウェイ装置のエリア重複率は、ゲートウェイ装置100に接続するノード10のうち、当該ゲートウェイ装置によってビーコン情報が受信されたノード10の数が占める割合である。このため、エリア重複率が高いゲートウェイ装置は、ゲートウェイ装置100と共通する多くのノード10と無線通信可能であり、ゲートウェイ装置100の近隣にあると考えられる。
それぞれのゲートウェイ装置についてのエリア重複率が算出されると、エリア重複率が所定値以上のゲートウェイ装置がゲートウェイ装置100の近隣GWであると決定される(ステップS507)。決定された近隣GWは、収容要求生成部140へ通知され、近隣GWに対して独立ノードの収容要求が送信される。
このように、ノード10がビーコン情報を送信する場合にも、ゲートウェイ装置がビーコン情報を送信する場合と同様に、ゲートウェイ装置100は、近隣GWを決定することができる。
なお、上記実施の形態1、2においては、ゲートウェイ装置100と無線通信可能な独立ノードがゲートウェイ装置200に収容される場合について詳しく説明した。しかし、ゲートウェイ装置100が他のゲートウェイ装置と無線通信可能な独立ノードを収容したり、ゲートウェイ装置200が独立ノードの収容を要求したりすることもある。そして、各ゲートウェイ装置が収容するノード10が異なれば、回帰推定に用いられる回帰モデル及び回帰係数も変化する。このため、ゲートウェイ装置がそれぞれ任意の時刻に他のゲートウェイ装置へ収容要求を送信すると、各ゲートウェイ装置に収容されるノード10が異なることになり、回帰モデル及び回帰係数が変化して、独立ノードの測定データの必要性も変化することがある。
このように、各ゲートウェイ装置が収容するノード10が任意の時刻に変更されるのは好ましくないため、すべてのゲートウェイ装置が収容要求を送信可能な期間を例えば1日の決まった時間などに限定するのが好ましい。すなわち、この期間内にのみ各ゲートウェイ装置が独立ノードの収容要求を送信し、期間終了時には、各ゲートウェイ装置が収容するノード10を確定させるのが好ましい。そして、期間終了後に、ゲートウェイ装置単位での回帰推定が実行され、各ノード10の測定データが必要であるか否かが判定されるようにすれば良い。
また、上記実施の形態1、2においては、定期的に各ゲートウェイ装置における回帰推定の誤差を算出し、誤差が所定の基準以上に大きくなった場合に、それぞれのノード10を収容するゲートウェイ装置を初期状態に戻し、改めて独立ノードを決定するようにしても良い。こうすることにより、各ノード10が設置された環境が変化した場合などにも、回帰推定の精度を向上し、消費電力の低減を図ることができる。なお、改めて独立ノードが決定された場合も、それぞれのゲートウェイ装置が任意の時刻に他のゲートウェイ装置へ収容要求を送信するのではなく、所定の期間内に各ゲートウェイ装置が独立ノードの収容要求を送信するのが好ましい。
なお、上記各実施の形態において説明したゲートウェイ装置100、200の処理をコンピュータが実行可能なプログラムとして記述することも可能である。この場合、このプログラムをコンピュータが読み取り可能な記録媒体に格納し、コンピュータに導入することも可能である。コンピュータが読み取り可能な記録媒体としては、例えばCD−ROM、DVDディスク、USBメモリなどの可搬型記録媒体や、例えばフラッシュメモリなどの半導体メモリが挙げられる。