(57)【要約】  サーバ（１０）においてプロセッサ（１２）は、複数のセンサノード（５０）を、各クラスタが中継ノードと中継ノードとの間で直接的に無線接続している子ノードから成る部分クラスタを少なくとも１つ含む複数のクラスタに分ける。そして、プロセッサ（１２）は、各部分クラスタの中継ノードから、各部分クラスタにおけるセンシング値の平均値を収集し、収集した各部分クラスタの平均値から、各クラスタのキャリブレーション基準値を算出する。そして、プロセッサ（１２）は、算出した各クラスタのキャリブレーション基準値を、各クラスタへ通知する。
2016147267.tif 000002
【特許請求の範囲】
【請求項１】
各センサノードがセンサと無線部とを有し且つマルチホップ通信が可能なセンサノード群における、センシング値のキャリブレーションを制御する制御装置であって、
メモリと、
前記メモリに接続されたプロセッサと、
を具備し、
前記プロセッサは、
前記センサノード群を、各クラスタが中継ノードと無線通信を行う子ノードを有する部分クラスタを少なくとも１つ含む複数のクラスタに分け、
各部分クラスタの中継ノードから、前記各部分クラスタにおけるセンシング値の平均値を収集し、
前記収集した各部分クラスタの平均値から、各クラスタのキャリブレーション基準値を算出し、
前記算出した各クラスタのキャリブレーション基準値を、前記各クラスタへ通知する、
ことを特徴とする制御装置。
【請求項２】
前記プロセッサは、第１のクラスタに複数の部分クラスタが含まれる場合、前記複数の部分クラスタにそれぞれ対応する複数の平均値を各部分クラスタに含まれるセンサノードの個数で加重平均することにより、前記第１のクラスタのキャリブレーション基準値を算出する、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記プロセッサは、各部分クラスタに含まれる各センサノードのセンシング値をさらに収集し、
第１のクラスタについて収集したセンシング値に外れ値が存在する場合、前記外れ値に対応するセンシング値を除外して、前記第１のクラスタのキャリブレーション基準値を算出する、
ことを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記プロセッサは、前記外れ値に対応する第１のセンサノードを、前記第１のセンサノード自身のセンシング値を送信せず且つ前記第１のセンサノードのセンシング値を転送するモードへ移行させる、
ことを特徴とする請求項３に記載の制御装置。
【請求項５】
各センサノードがセンサと無線部とを有し且つマルチホップ通信が可能なセンサノード群における、センシング値のキャリブレーションを制御する制御装置に、
前記センサノード群を、各クラスタが中継ノードと無線通信を行う子ノードを有する部分クラスタを少なくとも１つ含む複数のクラスタに分け、
各部分クラスタの中継ノードから前記各部分クラスタにおけるセンシング値の平均値を収集し、
前記収集した各部分クラスタの平均値から各クラスタのキャリブレーション基準値を算出し、
前記算出したキャリブレーション基準値を、前記マルチホップ通信を介して前記各クラスタへ通知する、
処理を実行させることを特徴とする制御プログラム。
【請求項６】
センサと無線部とを有し且つマルチホップ通信が可能なセンサノードであって、
メモリと、
前記メモリに接続されたプロセッサと、
を具備し、
前記プロセッサは、
親ノードモードへの切替指示信号を受信した場合、自ノードの周辺に存在する他のセンサノードから送信されたビーコンを受信し、前記受信したビーコンの送信元ノードを自ノードの子ノードとして受け入れ、前記子ノードに対して、センシング値の第１の送信指示信号を送信し、
前記送信した第１の送信指示信号に応じて前記子ノードからセンシング値を受け取った場合、自ノードのセンシング値と前記子ノードのセンシング値とを平均することにより、自ノード及び前記子ノードを含む部分クラスタのセンシング値平均を算出し、前記算出したセンシング値平均を、前記マルチホップ通信を介して制御装置へ送信するとともに、親ノードモードへの切替指示信号を前記子ノードへ送信し、
センシング値の第２の送信指示信号を受信した場合、自ノードのセンシング値を前記第２の送信指示信号の送信元ノードへ送信する、
ことを特徴とするセンサノード。
【請求項７】
前記プロセッサは、自ノードを含むクラスタのキャリブレーション基準値を受信した場合、自ノードのセンシング値を、前記キャリブレーション基準値を用いて校正する、
ことを特徴とする請求項６に記載のセンサノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御プログラム、及びセンサノードに関する。
【背景技術】
【０００２】
近年、無線通信部とセンサとを有するセンサノードを観測エリアに配置してセンシング情報を「収集周期（つまり、センシング値のサンプル周期）」で収集する「無線センサネットワーク」が提案されている。例えば、無線センサネットワークの各センサノードは、環境エネルギー（例えば、太陽光、振動等）を電気エネルギーに変換して発電する環境発電部と環境発電部によって発電された電気を蓄電するバッテリとを有している。そして、各センサノードは、バッテリに蓄電された電気を用いて動作する。【０００３】
また、無線センサネットワークの各センサノードで測定されたセンシング値は、ゲートウェイ装置を介して「制御装置（つまり、ネットワーク装置）」へ報告される。ここで、無線センサネットワークは、例えば、ツリー型のトポロジーを有する。すなわち、無線センサネットワークには、他のセンサノードで測定されたセンシング値の伝送を中継する「中継動作状態」にあるセンサノード（つまり、「中継ノード」）と、「非中継動作状態」にあるセンサノード（つまり、「エンドノード」）とが含まれる。各センサノードで測定されたセンシング値は、各センサノードから直接又は１つ以上の中継ノードを介してゲートウェイ装置へ伝送される。すなわち、無線センサネットワークは、「マルチホップ通信経路」を有している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２７１２３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、センサ間では、種々の要因によってセンシング値にばらつきが生じる。例えば、第１に、センサの個体差によって、センシング値にばらつきが生じる（第１のばらつき要因）。また、第２に、センサを備える機器の個体差（工作精度等）によっても、センシング値にばらつきが生じる（第２のばらつき要因）。第３に、センサが設置される環境（例えば、振動、風、雨、いたずら等）によっても、センシング値にばらつきが生じる（第３のばらつき要因）。【０００６】
これに対して、例えば、第１のばらつき要因又は第２のばらつき要因については、センサノードの出荷前にキャリブレーションを実行する対策が考えられる。また、第３のばらつき要因については、センサノードを外部要因に影響を受けないような筐体設計とする対策が考えられる。【０００７】
しかしながら、いずれの対策も、キャリブレーション処理の負荷が大きい、対策コストが大きい等の問題がある。【０００８】
開示の技術は、上記に鑑みてなされたものであって、センサネットワークにおけるキャリブレーション処理の負荷を低減できる、制御装置、制御プログラム、及びセンサノードを提供することを目的とする。
【課題を解決するための手段】
【０００９】
開示の態様では、制御装置は、各センサノードがセンサと無線部とを有し且つマルチホップ通信が可能なセンサノード群における、センシング値のキャリブレーションを制御する。前記制御装置は、メモリと、前記メモリに接続されたプロセッサと、を具備する。前記プロセッサは、前記センサノード群を、各クラスタが中継ノードと無線通信を行う子ノードを有する部分クラスタを少なくとも１つ含む複数のクラスタに分け、各部分クラスタの中継ノードから、前記各部分クラスタにおけるセンシング値の平均値を収集し、前記収集した各部分クラスタの平均値から、各クラスタのキャリブレーション基準値を算出し、前記算出した各クラスタのキャリブレーション基準値を、前記各クラスタへ通知する。
【発明の効果】
【００１０】
開示の態様によれば、センサネットワークにおけるキャリブレーション処理の負荷を低減できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１の無線センサネットワークシステムの説明に供する図である。
【図２】図２は、実施例１の無線センサネットワークシステムの説明に供する図である。
【図３】図３は、実施例１の無線センサネットワークシステムの説明に供する図である。
【図４】図４は、実施例１の無線センサネットワークシステムの説明に供する図である。
【図５】図５は、実施例１のサーバの一例を示すブロック図である。
【図６】図６は、実施例１の第１の対応テーブルの一例を示す図である。
【図７】図７は、実施例１のサーバからキャリブレーション基準値が送信される際に用いられるパケットのフォーマット例を示す図である。
【図８】図８は、実施例１のセンサノードの一例を示すブロック図である。
【図９】図９は、実施例１の親ノードからサーバに向けて、センシング値平均を送信する際に用いられるパケットのフォーマット例を示す図である。
【図１０】図１０は、実施例１のセンサノードの処理動作の一例を示すフローチャートである。
【図１１】図１１は、図１０の続きを示すフローチャートである。
【図１２】図１２は、図１１の続きを示すフローチャートである。
【図１３】図１３は、図１１の続きを示すフローチャートである。
【図１４】図１４は、実施例２の親ノードからサーバに向けて、センシング値平均を送信する際に用いられるパケットのフォーマット例を示す図である。
【図１５】図１５は、実施例２の第２の対応テーブルの一例を示す図である。
【図１６】図１６は、実施例２のキャリブレーション基準値の算出方法の説明に供する図である。
【図１７】図１７は、実施例２の中継特化ノードへの移行命令信号のフォーマット例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する制御装置、制御プログラム、及びセンサノードの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願の開示する制御装置、制御プログラム、及びセンサノードが限定されるものではない。また、実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略される。
【００１３】
［実施例１］
［無線センサネットワークシステムの概要］
図１〜４は、実施例１の無線センサネットワークシステムの説明に供する図である。図１〜４では、図１，２，３，４の順番で無線センサネットワークシステムが構築される手順が示されている。
【００１４】
図１〜４において、無線センサネットワークシステム１は、制御装置としてのサーバ１０と、サーバ１０と有線で直接的又は間接的に接続されるゲートウェイ（ＧＷ）３０と、センサノード５０−１〜７とを有する。センサノード５０−１〜７を特に区別しない場合、総称して「センサノード５０」と呼ぶことがある。ここでは、ゲートウェイ３０及びセンサノード５０の数をそれぞれ１つ及び７つとしているが、これに限定されるものではない。
【００１５】
図４に示す無線センサネットワークシステム１におけるトポロジーは、「ネットワーク構成手順」に従ってネットワークを構成した結果の一例である。「ネットワーク構成手順」は、次の通りである。
【００１６】
まず、図１に示すように、無線センサネットワークシステム１の「初期状態」では、ゲートウェイ３０とセンサノード５０−１〜７とにおいてネットワークが構築されていない。無線センサネットワークシステム１は、無線センサネットワークシステム１の運用開始前、又は、サーバ１０からゲートウェイ３０及びセンサノード５０−１〜７に対して、所定の時間間隔で「ネットワーク構築（再構築）命令信号」が送信される毎に、この初期状態となってもよい。
【００１７】
図１に示すように、無線センサネットワークシステム１の「初期状態」では、センサノード５０−１〜７のそれぞれは、「ビーコン」を送信する。すなわち、「初期状態」では、すべてのセンサノード５０は、「子ノードモード」として動作している。図１において、各センサノード５０を中心とした円（点線）は、送信された「ビーコン」が所定レベル以上の受信電力で到達する範囲を示している。
【００１８】
次に、ゲートウェイ３０は、ビーコンを受信すると当該ビーコンの送信元のセンサノード５０に対して「リンク形成信号」を送信する。すなわち、ゲートウェイ３０は、当該ビーコンの送信元のセンサノード５０を自身の「子ノード」として受け入れる。なお、「リンク形成信号」は、「受入了承信号」と呼ばれることがある。ここで、１つの「親ノード」が受け入れ可能な「子ノード」の数には、制限（以下では、「部分クラスタサイズ制限数」と呼ぶことがある）が設けられている。ここでは、「部分クラスタサイズ制限数」が２であるものとして説明する。
【００１９】
図１において、ゲートウェイ３０は、センサノード５０−１，２，３のそれぞれから送信されたビーコンを受信可能な位置に配設されているので、センサノード５０−１，２，３のうちの２つを自身の「子ノード」として受け入れ可能である。ここでは、例えばビーコンを受信した順番がセンサノード５０−１，２，３であったため、ゲートウェイ３０は、図２に示すように、センサノード５０−１，２のそれぞれとの間で無線リンクを形成する。ゲートウェイ３０によって「子ノード」として受け入れられたセンサノード５０−１，２は、図２に示すように、ビーコンの送信を停止する。これにより、センサノード５０−１，２がゲートウェイ３０以外の他のノード（センサノード５０）の「子ノード」として受け入れられることを防止することができる。この「ルール」によって、無線センサネットワークシステム１における「トポロジー」は、ツリー構造となる。
【００２０】
そして、「親ノード」としてのゲートウェイ３０は、自身の「子ノード」、つまり、センサノード５０−１，２に対して、「親ノードモード」への「切替指示信号」を送信する。
【００２１】
上記の「切替指示信号」を受信すると、センサノード５０−１，２のそれぞれは、「親ノードモード」での動作を開始する。
【００２２】
例えば、センサノード５０−１は、ビーコンを受信すると当該ビーコンの送信元のセンサノード５０に対して「リンク形成信号」を送信する。すなわち、センサノード５０−１は、当該ビーコンの送信元のセンサノード５０を自身の「子ノード」として受け入れる。
【００２３】
図２において、センサノード５０−１は、センサノード５０−３，４のそれぞれから送信されたビーコンを受信可能な位置に配設されているので、センサノード５０−３，４を自身の「子ノード」として受け入れ可能である。このため、図３に示すように、センサノード５０−１は、センサノード５０−３，４のそれぞれとの間で無線リンクを形成する。センサノード５０−１によって「子ノード」として受け入れられたセンサノード５０−３，４は、図３に示すように、ビーコンの送信を停止する。ここで、「親ノード」であるセンサノード５０−１と「子ノード」であるセンサノード５０−３，４との様に、「中継ノード」と当該中継ノードの「子ノード」とから成るグループを、以下では、「部分クラスタ」と呼ぶことがある。
【００２４】
そして、センサノード５０−１は、自身の子ノード、つまり、センサノード５０−３，４に対して、センシング値の「送信指示信号」を送信する。「送信指示信号」を受信すると、センサノード５０−３，４のそれぞれは、自身のセンサのセンシング値を、自身の「親ノード」であるセンサノード５０−１に対して送信する。
【００２５】
そして、センサノード５０−１は、自身の「部分クラスタ」における「センシング値平均」を算出する。すなわち、センサノード５０−１は、自身のセンサのセンシング値と、センサノード５０−３，４のそれぞれから報告されたセンシング値との平均を算出する。そして、センサノード５０−１は、算出した「センシング値平均」を、自身の親ノードであるゲートウェイ３０を介してサーバ１０へ送信する。ここで、親ノードであるセンサノード５０−１は、自身の部分クラスタのセンシング値平均とともに、自身の部分クラスタに含まれる各センサノード５０の識別情報をサーバ１０へ送信する。
【００２６】
一方、センサノード５０−２も、センサノード５０−１と同等の処理を実行する。すなわち、センサノード５０−２は、センサノード５０−５を自身の子ノードとして受け入れ、自身のセンサのセンシング値とセンサノード５０−５から報告されたセンシング値とのセンシング値平均を算出する。そして、センサノード５０−２は、算出した「センシング値平均」を、自身の親ノードであるゲートウェイ３０を介してサーバ１０へ送信する。
【００２７】
そして、センサノード５０−１，２のそれぞれは、自身の「子ノード」に対して、「親ノードモード」への「切替指示信号」を送信する。
【００２８】
上記の「切替指示信号」を受信すると、センサノード５０−３，４，５のそれぞれは、「親ノードモード」での動作を開始する。
【００２９】
例えば、センサノード５０−４は、ビーコンを受信すると当該ビーコンの送信元のセンサノード５０に対して「リンク形成信号」を送信する。すなわち、センサノード５０−４は、当該ビーコンの送信元のセンサノード５０を自身の「子ノード」として受け入れる。
【００３０】
図３において、センサノード５０−４は、センサノード５０−６，７のそれぞれから送信されたビーコンを受信可能な位置に配設されているので、センサノード５０−６，７を自身の「子ノード」として受け入れ可能である。このため、図４に示すように、センサノード５０−４は、センサノード５０−６，７のそれぞれとの間で無線リンクを形成する。センサノード５０−４によって「子ノード」として受け入れられたセンサノード５０−６，７は、図４に示すように、ビーコンの送信を停止する。なお、図１〜図４に示した例では、センサノード５０−６，７は、エンドノードとして動作する。
【００３１】
そして、センサノード５０−４は、自身の子ノード、つまり、センサノード５０−６，７に対して、センシング値の「送信指示信号」を送信する。「送信指示信号」を受信すると、センサノード５０−６，７のそれぞれは、自身のセンサのセンシング値を、自身の「親ノード」であるセンサノード５０−４に対して送信する。
【００３２】
そして、センサノード５０−４は、自身の「部分クラスタ」における「センシング値平均」を算出する。すなわち、センサノード５０−４は、自身のセンサのセンシング値と、センサノード５０−６，７のそれぞれから報告されたセンシング値との平均を算出する。そして、センサノード５０−４は、算出した「センシング値平均」を、自身の親ノードであるセンサノード５０−１を介してサーバ１０へ送信する。
【００３３】
一方、サーバ１０は、無線センサネットワークシステム１の複数のセンサノード５０を、部分クラスタを少なくとも１つ含む複数の「クラスタ」に、センサノード５０の個数に基づいて分ける。例えば、サーバ１０は、１つのクラスタに含まれるセンサノード５０の個数（以下では、「クラスタサイズ制限数」と呼ぶことがある）を５個とする。この場合、センサノード５０−１及びセンサノード５０−３，４から成る部分クラスタ１とセンサノード５０−２及びセンサノード５０−５から成る部分クラスタ２との構成ノード数が５となるので、部分クラスタ１及び部分クラスタ２を合わせてクラスタ１とする。そして、クラスタ１に含まれないセンサノード５０−６，７は、周辺に他のセンサノード５０が在れば部分クラスタを形成し、形成した部分クラスタがサーバ１０によってクラスタ１以外の他のクラスタに分類されることになる。
【００３４】
そして、サーバ１０は、クラスタ単位で、クラスタに含まれる部分クラスタのセンシング値平均に基づいて、「キャリブレーション基準値」を算出する。例えば、サーバ１０は、或るクラスタに複数の部分クラスタが含まれる場合、その複数の部分クラスタのそれぞれに対応する複数のセンシング値平均を、各部分クラスタに含まれるセンサノード５０の個数で加重平均することにより、そのクラスタの「キャリブレーション基準値」を算出する。
【００３５】
そして、サーバ１０は、各クラスタについて算出した「キャリブレーション基準値」を、各クラスタに含まれる各センサノード５０へマルチホップ通信を利用して送信する。
【００３６】
そして、各センサノード５０は、自身宛の「キャリブレーション基準値」を受信すると、その「キャリブレーション基準値」を用いてキャリブレーション処理を実行する。すなわち、各センサノード５０は、自身のセンサのセンシング値から受信した「キャリブレーション基準値」を差し引くことにより、「誤差値」を算出する。そして、各センサノード５０は、上記の「収集周期」毎に、自身のセンサのセンシング値に算出した「誤差値」を加算することによりセンシング値を補正し、補正後のセンシング値を自身の親ノードを介してサーバ１０へ報告する。
【００３７】
以上のように無線センサネットワークシステム１においてキャリブレーション処理を実行することにより、センサノード５０の出荷前に個別にキャリブレーション処理を実行することを回避できるので、キャリブレーション処理の処理負荷を軽減することができる。また、無線センサネットワークシステム１のネットワーク構成手順においてキャリブレーション処理を実行することにより、ネットワーク構成手順とキャリブレーション処理とで重複する処理を排除できるので、キャリブレーション処理の処理負荷をさらに軽減することができる。
【００３８】
［サーバの構成例］
図５は、実施例１のサーバの一例を示すブロック図である。図５において、サーバ１０は、インタフェース（ＩＦ）部１１と、プロセッサ１２と、メモリ１３とを有する。プロセッサ１２の一例としては、ＣＰＵ、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）等が挙げられる。また、メモリ１３の一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１２によって実行される各種処理機能は、当該各種処理機能に対応するプログラムがメモリ１３に記録され、各プログラムがプロセッサ１２で実行されることによって実現される。
【００３９】
インタフェース部１１は、ゲートウェイ３０と直接的又は間接的に有線で通信するインタフェースである。インタフェース部１１は、センサノード５０から送信された種々の信号をゲートウェイ３０を介して受信してプロセッサ１２へ出力する。また、インタフェース部１１は、プロセッサ１２から受け取った種々の信号を、ゲートウェイ３０を介して各センサノード５０へ送信する。
【００４０】
プロセッサ１２は、各部分クラスタの中継ノードから送信されてきた、センシング値平均と部分クラスタを構成する各センサノード５０の識別情報とを対応付けた「第１の対応テーブル」をメモリ１３に記憶させる。
【００４１】
図６は、実施例１の第１の対応テーブルの一例を示す図である。図６において、第１の対応テーブルでは、各部分クラスタの識別情報（例えば、親ノードの識別情報）と各部分クラスタに含まれる子ノードの識別情報と各部分クラスタのセンシング値平均とが対応付けられている。図４に示したトポロジーの例では、センサノード５０−１を親ノードとする部分クラスタ識別情報（５０−１）と、部分クラスタ（５０−１）の子ノードであるセンサノード５０−３，４と、部分クラスタ（５０−１）のセンシング値平均α１とが対応付けられている。
【００４２】
また、プロセッサ１２は、無線センサネットワークシステム１の複数のセンサノード５０を、各クラスタが部分クラスタを少なくとも１つ含む複数の「クラスタ」に、センサノード５０の個数に基づいて分ける。例えば、プロセッサ１２は、「クラスタサイズ制限数」を超えない範囲で、複数の部分クラスタをまとめることによってクラスタを形成する。
【００４３】
そして、プロセッサ１２は、クラスタ単位で、クラスタに含まれる部分クラスタのセンシング値平均に基づいて、「キャリブレーション基準値」を算出する。例えば、プロセッサ１２は、或るクラスタに複数の部分クラスタが含まれる場合、その複数の部分クラスタのそれぞれに対応する複数のセンシング値平均を、各部分クラスタに含まれるセンサノード５０の個数で加重平均することにより、そのクラスタの「キャリブレーション基準値」を算出する。
【００４４】
そして、プロセッサ１２は、各クラスタについて算出した「キャリブレーション基準値」と各クラスタに含まれる部分クラスタの識別情報（例えば、各部分クラスタの親ノードの識別情報）とを、ＩＦ部１１へ出力する。これにより、各クラスタについて算出した「キャリブレーション基準値」と各クラスタに含まれる各センサノード５０の識別情報とがゲートウェイ３０及びマルチホップ通信を介して、各クラスタに含まれる各センサノード５０へ送信される。
【００４５】
図７は、実施例１のサーバからキャリブレーション基準値が送信される際に用いられるパケットのフォーマット例を示す図である。図７に示すように、例えば、サーバ１０は、「宛先アドレス」として部分クラスタ（５０−１）を含み、「キャリブレーション基準値」としてα１を含むパケットを送信する。図４に示した例では、部分クラスタ（５０−１）と同じクラスタに部分クラスタ（５０−２）も含まれる。このため、サーバ１０は、「宛先アドレス」として部分クラスタ（５０−２）を含み、「キャリブレーション基準値」として値β１を含むパケットも送信する。部分クラスタの親ノードに送信されたキャリブレーション基準値は、その親ノードによって子ノードへ転送される。
【００４６】
メモリ１３は、センサノード５０から送信された各種情報、及び、プロセッサ１２で算出された各種情報を記憶する。
【００４７】
［センサノードの構成例］
図８は、実施例１のセンサノードの一例を示すブロック図である。図８において、センサノード５０は、環境発電部５１と、バッテリ５２と、センサ５３と、プロセッサ５４と、無線部５５と、メモリ５６とを有する。プロセッサ５４の一例としては、ＣＰＵ、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）等が挙げられる。また、メモリ５６の一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ５４によって実行される各種処理機能は、当該各種処理機能に対応するプログラムがメモリ５６に記録され、各プログラムがプロセッサ５４で実行されることによって実現される。
【００４８】
環境発電部５１は、環境エネルギー（例えば、太陽光、振動等）を利用して発電し、発電した電気をバッテリ５２へ出力する。
【００４９】
バッテリ５２は、環境発電部５１で発電した電気を蓄電し、蓄電した電気をプロセッサ５４及び無線部５５へ供給する。
【００５０】
センサ５３は、測定したセンシング値をプロセッサ５４へ出力する。
【００５１】
プロセッサ５４は、アンテナ及び無線部５５を介して制御信号を受信し、受信した制御信号に応じた処理を制御する。
【００５２】
例えば、プロセッサ５４は、サーバ１０から送信された「ネットワーク構築（再構築）命令信号」を受信すると、自センサノードを「子ノードモード」に移行させる。そして、プロセッサ５４は、「ビーコン」を生成し、生成したビーコンを所定周期で無線部５５及びアンテナを介して送信する。また、プロセッサ５４は、自センサノードの親ノードから送信された「受入了承信号」を受信すると、ビーコンの送信を停止する。
【００５３】
また、プロセッサ５４は、センシング値の「送信指示信号」を受信すると、自センサノードの親ノードに対して、センサ５３で測定されたセンシング値を無線部５５及びアンテナを介して送信する。
【００５４】
また、プロセッサ５４は、親ノードモードへの「切替指示信号」を受信すると、自センサノードを「親ノードモード」へ移行させる。そして、プロセッサ５４は、ビーコンをアンテナ及び無線部５５を介して受信すると、当該ビーコンの送信元のセンサノード５０に対して「リンク形成信号」を送信する。プロセッサ５４は、上記の「部分クラスタサイズ制限数」を上限として、受信したビーコンの送信元のセンサノード５０へリンク形成信号を送信する。すなわち、プロセッサ５４は、上記の「部分クラスタサイズ制限数」を上限として、受信したビーコンの送信元のセンサノード５０を自センサノードの子ノードとして受け入れる。そして、プロセッサ５４は、自センサノードの子ノードに対して、センシング値の「送信指示信号」を送信する。そして、プロセッサ５４は、送信した「送信指示信号」に応じて子ノードから送信されたセンシング値を受信すると、自センサノードが中継ノードとなる部分クラスタにおける「センシング値平均」を算出する。そして、プロセッサ５４は、算出した「センシング値平均」を、自センサノードの親ノードを介してサーバ１０へ送信する。そして、プロセッサ５４は、自センサノードの子ノードへ、親ノードモードへの「切替指示信号」を送信する。
【００５５】
図９は、実施例１の親ノードからサーバに向けて、センシング値平均を送信する際に用いられるパケットのフォーマット例を示す図である。図９には特にパケットのペイロード部分が図示されている。図９に示すようにペイロード部分には、部分クラスタの識別情報（例えば、親ノードの識別情報）と当該部分クラスタに含まれる子ノードの識別情報と当該部分クラスタのセンシング値平均とが、対応付けられて格納されている。図４に示したトポロジーの例では、ペイロードに、センサノード５０−１を親ノードとする部分クラスタ識別情報（５０−１）と、部分クラスタ（５０−１）の子ノードであるセンサノード５０−３，４と、部分クラスタ（５０−１）のセンシング値平均α１とが、対応付けられて格納されている。
【００５６】
また、プロセッサ５４は、サーバ１０から送信された「キャリブレーション基準値」を受信すると、キャリブレーション処理を実行する。すなわち、プロセッサ５４は、センサ５３のセンシング値から受信した「キャリブレーション基準値」を差し引くことにより、「誤差値」を算出する。そして、プロセッサ５４は、上記の「収集周期」毎に、センサ５３のセンシング値に算出した「誤差値」を加算することによりセンシング値を補正し、補正後のセンシング値を自センサノードの親ノードを介してサーバ１０へ報告する。
【００５７】
［無線センサネットワークシステムの動作例］
以上の構成を有する無線センサネットワークシステム１の処理動作の一例について説明する。ここでは、主に、センサノード５０の処理動作の一例について説明する。図１０〜図１３は、実施例１のセンサノードの処理動作の一例を示すフローチャートである。図１０〜図１３に示される処理フローは、例えば、無線センサネットワークシステム１の運用開始前、又は、サーバ１０からゲートウェイ３０及びセンサノード５０−１〜７に対して、所定の時間間隔で「ネットワーク構築（再構築）命令信号」が送信される毎に実行される。
【００５８】
無線センサネットワークシステム１が上記の「初期状態」になると、センサノード５０においてプロセッサ５４は、一定周期でのビーコンの送信を開始する（ステップＳ１０１）。上記の通り、無線センサネットワークシステム１の「初期状態」では、例えば、すべてのセンサノード５０が「子ノードモード」に移行している。
【００５９】
プロセッサ５４は、制御信号を受信するまで待ち（ステップＳ１０２否定）、制御信号を受信すると（ステップＳ１０２肯定）、受信した制御信号が「受入了承信号」であるか否か、つまり、「リンク形成信号」であるか否かを判定する（ステップＳ１０３）。
【００６０】
受信した制御信号が「受入了承信号」である場合（ステップＳ１０３肯定）、プロセッサ５４は、自センサノードが子ノードとして受け入れられたので、ビーコンの送信を停止する（ステップＳ１０４）。そして、処理ステップは、ステップＳ１０２へ戻る。
【００６１】
受信した制御信号が「受入了承信号」でない場合（ステップＳ１０３否定）、プロセッサ５４は、受信した制御信号がセンシング値の「送信指示信号」であるか否かを判定する（ステップＳ１０５）。
【００６２】
受信した制御信号が「送信指示信号」である場合（ステップＳ１０５肯定）、プロセッサ５４は、自センサノードのセンサ５３で測定されたセンシング値を、「送信指示信号」の送信元である自センサノードの親ノードに対して送信する（ステップＳ１０６）。そして、処理ステップは、ステップＳ１０２へ戻る。
【００６３】
受信した制御信号が「送信指示信号」でない場合（ステップＳ１０５否定）、プロセッサ５４は、受信した制御信号が親ノードモードへの「切替指示信号」であるか否かを判定する（ステップＳ１０７）。
【００６４】
受信した制御信号が親ノードモードへの「切替指示信号」である場合（ステップＳ１０７肯定）、プロセッサ５４は、ビーコンをアンテナ及び無線部５５を介して順次受信する（ステップＳ１０８）。
【００６５】
プロセッサ５４は、受信ビーコンの１つの送信元センサノードを「対象ノード」に設定する（ステップＳ１０９）。
【００６６】
プロセッサ５４は、「受入了承信号」、つまり、「リンク形成信号」を、対象ノードへ送信する（ステップＳ１１０）。
【００６７】
プロセッサ５４は、受信ビーコンのすべての送信元センサノードを「対象ノード」に設定したか否かを判定する（ステップＳ１１１）。
【００６８】
受信ビーコンのすべての送信元センサノードを「対象ノード」に設定した場合（ステップＳ１１１肯定）、プロセッサ５４は、受入了承信号を送信したすべてのノードへ、センシング値の「送信指示信号」を送信する（ステップＳ１１２）。
【００６９】
受信ビーコンのすべての送信元センサノードを「対象ノード」に設定していない場合（ステップＳ１１１否定）、プロセッサ５４は、受入了承信号を送信したノードの数が「部分クラスタサイズ制限数」に到達したか否かを判定する（ステップＳ１１３）。
【００７０】
受入了承信号を送信したノードの数が「部分クラスタサイズ制限数」に到達していない場合（ステップＳ１１３否定）、プロセッサ５４は、次の送信元センサノードを「対象ノード」に設定する（ステップＳ１１４）。そして、処理ステップは、ステップＳ１１５へ戻る。一方、受入了承信号を送信したノードの数が「部分クラスタサイズ制限数」に到達した場合（ステップＳ１１３肯定）、処理ステップは、ステップＳ１１２へ進む。
【００７１】
プロセッサ５４は、センシング値の「送信指示信号」を送信したすべての子ノードからセンシング値を受信するまで待つ（ステップＳ１１５否定）。そして、プロセッサ５４は、センシング値の「送信指示信号」を送信したすべての子ノードからセンシング値を受信すると（ステップＳ１１５肯定）、自センサノードが中継ノードとなる部分クラスタにおける「センシング値平均」を算出する（ステップＳ１１６）。
【００７２】
プロセッサ５４は、算出したセンシング値平均及び各子ノードの識別情報を、自センサノードの親ノードを介してサーバ１０へ送信する（ステップＳ１１７）。なお、サーバ１０においてプロセッサ１２は、複数のセンサノード５０を、各クラスタが中継ノードと中継ノードとの間で直接的に無線接続している子ノードから成る部分クラスタを少なくとも１つ含む複数のクラスタに分ける。そして、プロセッサ１２は、各部分クラスタの中継ノードから、各部分クラスタにおけるセンシング値平均を収集し、収集した各部分クラスタのセンシング値平均から、各クラスタのキャリブレーション基準値を算出する。そして、プロセッサ１２は、算出した各クラスタのキャリブレーション基準値を、マルチホップ通信を介して各クラスタへ通知する。
【００７３】
プロセッサ５４は、親ノードモードへの「切替指示信号」を、すべての子ノードへ送信する（ステップＳ１１８）。そして、処理ステップは、ステップＳ１０２へ戻る。
【００７４】
受信した制御信号が親ノードモードへの「切替指示信号」でない場合（ステップＳ１０７否定）、プロセッサ５４は、受信した制御信号が「キャリブレーション基準値」であるか否かを判定する（ステップＳ１１９）。
【００７５】
受信した制御信号が「キャリブレーション基準値」である場合（ステップＳ１１９肯定）、プロセッサ５４は、受信した「キャリブレーション基準値」でキャリブレーション処理を実行する（ステップＳ１２０）。すなわち、プロセッサ５４は、自センサノードのセンサ５３のセンシング値から受信した「キャリブレーション基準値」を差し引くことにより、「誤差値」を算出する。
【００７６】
プロセッサ５４は、「収集周期」毎に、センサ５３のセンシング値に算出した「誤差値」を加算することによりセンシング値を補正し、補正後のセンシング値を自センサノードの親ノードを介してサーバ１０へ報告する（ステップＳ１２１）。
【００７７】
受信した制御信号が「キャリブレーション基準値」でない場合（ステップＳ１１９否定）、プロセッサ５４は、受信した制御信号に応じた処理を実行する（ステップＳ１２２）。そして、処理ステップは、ステップＳ１０２へ戻る。
【００７８】
以上のように本実施例によれば、サーバ１０においてプロセッサ１２は、複数のセンサノード５０を、各クラスタが中継ノードと中継ノードとの間で直接的に無線接続している子ノードから成る部分クラスタを少なくとも１つ含む複数のクラスタに分ける。そして、プロセッサ１２は、各部分クラスタの中継ノードから、各部分クラスタにおけるセンシング値の平均値を収集し、収集した各部分クラスタの平均値から、各クラスタのキャリブレーション基準値を算出する。そして、プロセッサ１２は、算出した各クラスタのキャリブレーション基準値を、マルチホップ通信を介して各クラスタへ通知する。
【００７９】
このサーバ１０の構成により、無線センサネットワークシステム１においてキャリブレーション処理を実行できるので、センサノード５０の出荷前に個別にキャリブレーション処理を実行することを回避できる。この結果として、キャリブレーション処理の処理負荷を軽減することができる。
【００８０】
また、プロセッサ１２は、複数のクラスタのうちの第１のクラスタに複数の部分クラスタが含まれる場合、その複数の部分クラスタにそれぞれ対応する複数の平均値を各部分クラスタに含まれるセンサノードの個数で加重平均することにより、第１のクラスタのキャリブレーション基準値を算出する。
【００８１】
このサーバ１０の構成により、各部分クラスタの大きさを加味してクラスタのキャリブレーション基準値を算出できるので、キャリブレーションの精度を向上させることができる。
【００８２】
また、センサノード５０においてプロセッサ５４は、親ノードモードへの切替指示信号を受信した場合、自ノードの周辺に存在する他のセンサノードから送信されたビーコンを受信し、受信したビーコンの送信元ノードを自ノードの子ノードとして受け入れ、子ノードに対して、センシング値の送信指示信号を送信する。そして、プロセッサ５４は、送信した送信指示信号に応じて子ノードからセンシング値を受け取った場合、自ノードのセンシング値と子ノードのセンシング値とを平均することにより、自ノード及び子ノードを含む部分クラスタのセンシング値平均を算出し、算出したセンシング値平均を、マルチホップ通信を介してサーバ１０へ送信し、親ノードモードへの切替指示信号を子ノードへ送信する。そして、プロセッサ５４は、センシング値の送信指示信号を受信した場合、自ノードのセンシング値を送信指示信号の送信元ノードへ送信する。
【００８３】
このセンサノード５０の構成により、無線センサネットワークシステム１のネットワーク構成手順においてキャリブレーション処理を実行できる。これにより、ネットワーク構成手順とキャリブレーション処理とで重複する処理を排除できるので、キャリブレーション処理の処理負荷をさらに軽減することができる。
【００８４】
［実施例２］
実施例２は、キャリブレーション基準値を算出する際に用いる「使用対象センシング値」から、「異常値（つまり、「外れ値」）」と判定されるセンシング値を除外するとともに、除外されたセンシング値に対応するセンサノードを「中継特化ノード」とする、実施例に関する。なお、実施例２のサーバ及びセンサノードの基本構成は、実施例１のサーバ１０及びセンサノード５０と同じなので、図５及び図８を用いて説明する。
【００８５】
［センサノードの構成例］
実施例２のセンサノード５０において、プロセッサ５４は、実施例１と同様に、「親ノードモード」において、送信した「送信指示信号」に応じて子ノードから送信されたセンシング値を受信すると、自センサノードが中継ノードとなる部分クラスタにおける「センシング値平均」を算出する。そして、プロセッサ５４は、算出した「センシング値平均」に加えて、自センサノード及び自センサノードの子ノードのそれぞれのセンシング値を、自センサノードの親ノードを介してサーバ１０へ送信する。
【００８６】
図１４は、実施例２の親ノードからサーバに向けて、センシング値平均を送信する際に用いられるパケットのフォーマット例を示す図である。図１４には特にパケットのペイロード部分が図示されている。図１４に示すようにペイロード部分には、部分クラスタの識別情報（つまり、親ノード識別情報）及び当該親ノードのセンシング値と、当該部分クラスタに含まれる子ノードの識別情報及び各子ノードのセンシング値と、当該部分クラスタのセンシング値平均とが、対応付けられて格納されている。
【００８７】
また、実施例２のセンサノード５０において、プロセッサ５４は、サーバ１０から送信された、自センサノードに対する「中継特化ノードへの移行命令信号」を受け取ると、自センサノードを「中継特化ノードモード」へ移行させる。「中継特化ノード」とは、センシング値の収集タイミングにおいて、自センサノードのセンシング値を送信せず且つ自センサノードの子ノードのセンシング値を転送する、ノードである。
【００８８】
［サーバの構成例］
実施例２のサーバ１０において、プロセッサ１２は、各部分クラスタの中継ノードから送信されてきた、部分クラスタの識別情報（つまり、親ノード識別情報）及び当該親ノードのセンシング値と、当該部分クラスタに含まれる子ノードの識別情報及び各子ノードのセンシング値と、当該部分クラスタのセンシング値平均とを対応付けた「第２の対応テーブル」をメモリ１３に記憶させる。
【００８９】
図１５は、実施例２の第２の対応テーブルの一例を示す図である。図１５において、第２の対応テーブルでは、部分クラスタの識別情報（つまり、親ノード識別情報）及び当該親ノードのセンシング値と、当該部分クラスタに含まれる子ノードの識別情報及び各子ノードのセンシング値と、当該部分クラスタのセンシング値平均とが対応付けられている。
【００９０】
また、実施例２のサーバ１０において、プロセッサ１２は、実施例１と同様に、無線センサネットワークシステム１の複数のセンサノード５０を、各クラスタが部分クラスタを少なくとも１つ含む複数の「クラスタ」に、センサノード５０の個数に基づいて分ける。例えば、プロセッサ１２は、「クラスタサイズ制限数」を超えない範囲で、複数の部分クラスタをまとめることによってクラスタを形成する。
【００９１】
ここで、実施例２のサーバ１０において、プロセッサ１２は、或クラスタについて収集したセンシング値に「外れ値」が存在する場合、その外れ値に対応するセンシング値を除外して、「キャリブレーション基準値」を算出する。例えば、プロセッサ１２は、或クラスタに含まれる各センサノード５０のセンシング値に基づいて、「Trim  mean」を用いて、外れ値を除外した平均値を算出し、当該算出した平均値を「キャリブレーション基準値」とする。「Trim  mean」とは、従来から用いられている、異常値を除いた平均値を算出するためのアルゴリズムである。
【００９２】
図１６は、実施例２のキャリブレーション基準値の算出方法の説明に供する図である。図１６では、説明を簡単にするために、センサノード＃Ａ〜＃Ｄの４つのセンサノード５０を含むクラスタを一例として挙げている。図１６では、センシング値の一例として「湿度」が挙げられている。図１６において、センサノード＃Ａ〜＃Ｄのセンシング値（湿度値）は、それぞれ、「６３」、「６０」、「１１８」、「６２」である。これらを単純平均すると、「７５．８」となり、これらの中央値は、「６２．５」である。これらのセンサノード＃Ａ〜＃Ｄのセンシング値（「６３」、「６０」、「１１８」、「６２」）に対して、「Trim  mean」を適用すると、外れ値（「１１８」）が排除された平均値（「６１．７」）を算出することができる。
【００９３】
そして、実施例２のサーバ１０において、プロセッサ１２は、実施例１と同様に、各クラスタについて算出した「キャリブレーション基準値」と各クラスタに含まれる部分クラスタの識別情報（例えば、各部分クラスタの親ノードの識別情報）とを、ＩＦ部１１へ出力する。これにより、各クラスタについて算出した「キャリブレーション基準値」と各クラスタに含まれる各センサノード５０の識別情報とがゲートウェイ３０及びマルチホップ通信を介して、各クラスタに含まれる各センサノード５０へ送信される。
【００９４】
また、実施例２のサーバ１０において、プロセッサ１２は、上記の「外れ値」に対応するセンサノード５０を含む部分クラスタの識別情報（例えば、各部分クラスタの親ノードの識別情報）と、上記の「外れ値」に対応するセンサノード５０の識別情報とを含む、上記の「中継特化ノードへの移行命令信号」を生成し、ＩＦ部１１へ出力する。
【００９５】
図１７は、実施例２の中継特化ノードへの移行命令信号のフォーマット例を示す図である。図１７に示すように、例えば、サーバ１０は、「宛先アドレス」として部分クラスタ（５０−１）を含み、「中継特化ノードへの移行命令信号の対象であるセンサノードの識別情報」として、センサノード（５０−４）を含む、「移行命令信号」を送信する。
【００９６】
以上のように本実施例によれば、サーバ１０において、プロセッサ１２は、各部分クラスタに含まれる各センサノードのセンシング値をさらに収集する。そして、プロセッサ１２は、或クラスタについて収集したセンシング値に外れ値が存在する場合、外れ値に対応するセンシング値を除外して、そのクラスタのキャリブレーション基準値を算出する。
【００９７】
このサーバ１０の構成により、外れ値を排除した上でキャリブレーション基準値を算出することができるので、キャリブレーション基準値の精度を向上させることができる。
【００９８】
また、サーバ１０において、プロセッサ１２は、外れ値に対応するセンサノードを、「中継特化モード」へ移行させる。
【００９９】
このサーバ１０の構成により、センサノードから周期的に報告されるセンシング値の対象から、外れ値に対応するセンシング値を除くことができるので、サーバ１０において収集したセンシング値の精度を向上させることができる。また、外れ値に対応するセンサノードを中継局として動作させることができるので、マルチホップ通信を安定させることができる。
【符号の説明】
【０１００】
１  無線センサネットワークシステム
１０  サーバ
１１  インタフェース部
１２，５４  プロセッサ
１３，５６  メモリ
３０  ゲートウェイ
５０  センサノード
５１  環境発電部
５２  バッテリ
５３  センサ
５５  無線部
【図１】
2016147267.tif 000003
【図２】
2016147267.tif 000004
【図３】
2016147267.tif 000005
【図４】
2016147267.tif 000006
【図５】
2016147267.tif 000007
【図６】
2016147267.tif 000008
【図７】
2016147267.tif 000009
【図８】
2016147267.tif 000010
【図９】
2016147267.tif 000011
【図１０】
2016147267.tif 000012
【図１１】
2016147267.tif 000013
【図１２】
2016147267.tif 000014
【図１３】
2016147267.tif 000015
【図１４】
2016147267.tif 000016
【図１５】
2016147267.tif 000017
【図１６】
2016147267.tif 000018
【図１７】
2016147267.tif 000019
【国際調査報告】
2016147267.tif 000020
2016147267.tif 000021
2016147267.tif 000022
2016147267.tif 000023