(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下に添付図面を参照して、開示のデータ収集方法、システム、およびデータ収集プログラムの実施の形態を詳細に説明する。
【0011】
図1は、本実施の形態のシステムにかかるデータ収集方法の一例を示す説明図である。システム100は、ノード#1〜#6、…、#Nと、検査員端末101とを有する。Nは、正の整数である。ノード#1〜#6、…、#Nは、所定領域A内に配置される。所定領域Aは、たとえば、コンクリート、土、水、空気などの物質で満たされた領域である。ノード#1〜#6、…、#Nは、センサーを有する通信装置である。ノード#1〜#6、…、#Nは、エナジーハーベスト素子を有し、エナジーハーベスト素子により発生する電力により、動作する。ノード#1〜#6、…、#Nは、十分に蓄電されると起動し、データを送信してスリープするという間欠動作を行う。また、エナジーハーベスト素子により発生する電力は限られるため、ノード#1〜#6、…、#Nは、電力消費が少ない短距離無線を有しており、マルチホップ通信によりデータを送受信する。
【0012】
ノード#1〜#6、…、#Nは、各々が有するセンサーから、所定領域A内の温度、湿度、応力といったデータを検出する。検査員端末101は、ノード#1〜#6、…、#Nが検出したデータを収集する。収集したデータは、サーバに集約されて、解析処理に用いられる。
【0013】
たとえば、所定領域Aは、辺境のトンネル内のコンクリートである。そして、検査員が月に1度訪れて、検査員端末101に、データ収集するように操作する。操作を受け付けた検査員端末101は、ノード#1〜#6、…、#Nの各センサーから検出された応力を収集する。
【0014】
データを収集する際、検査員端末101は、データ収集要求をノード#1〜#6、…、#Nに送信する。データ収集要求を受信したノード#1〜#6、…、#Nは、自ノードのデータを短距離無線が届く周辺のノードに送信し、スリープして、再び動作できるまで充電する。他ノードのデータを受信したノードは、受信したデータを周辺のノードに送信し、スリープして、再び動作できるまで充電する。ノード#1〜#6、…、#Nは、検査員端末101にデータが到達するまで転送を繰り返す。
【0015】
このとき、検査員端末101が、#1〜#6、…、#Nからデータを収集するのに時間がかかる。具体的に、あるノードが、データ発信のために電波を発すると、他ノードは、データ転送のために電波を発する。他ノードは、電波を発した後充電することになるため、次のノードがデータを発生するためには、充電時間後になる。検査員端末101が、全データからデータを収集するには、((データの伝達時間+充電時間)×ノードの個数)で計算される時間がかかる。データの伝達時間が無視できるものとし、充電時間が1分であり、ノードの個数が、1000個であれば、検査員端末101が、全ノードからデータを収集するには、17時間かかることになる。
【0016】
そこで、本実施の形態にかかるシステム100は、センサーのデータの内容が近いノード群のうちの或るノードがノード群を代表してデータを送信し、他ノードは或るノードにデータの送信を任せて、データの転送のみ行う。これにより、システム100は、システム全体のデータの通信量が減少し、データを送信する際に要求される充電する回数が減少するため、全データの収集にかかる時間を短くすることができる。
【0017】
初めに、ノード#1〜#6、…、#Nのうちのいずれかのノードが、第1のノードとして、ノード#1が有するセンサーから取得されるデータと、第2のノードとして、ノード#2が有するセンサーから取得されるデータとの内容が同等であるか否か判断する。いずれかのノードは、ノード#1でもよいし、ノード#2でもよいし、ノード#1およびノード#2以外のノードでもよい。
【0018】
たとえば、いずれかのノードがノード#1であれば、ノード#1は、ノード#2のデータを受信して、受信したデータとノード#1が有するセンサーから取得されるデータとを比較して、データの内容が同等であるか否かを判断する。また、いずれかのノードがノード#4であれば、ノード#4は、ノード#1のデータとノード#2のデータを受信して、受信した2つのデータを比較して、データの内容が同等であるか否か判断する。
図1の例では、いずれかのノードをノード#2とし、ノード#2が、ノード#1のデータを受信し、受信したデータとノード#2が有するセンサーから取得されるデータとを比較して、データの内容が同等であるか否かを判断する。
【0019】
また、データの内容が同等であるか否かについて、いずれかのノードは、2つのデータがシステム100の開発者によって指定された条件を満たした場合、データの内容が同等であると判断する。指定された条件は、たとえば、2つのデータの差分が閾値以内である、2つのデータの差分が閾値を超える、等である。
【0020】
データの内容が同等であると判断された場合、ノード#1〜#6、…、#Nのうちのいずれかのノードは、ノード#2によるノード#2のセンサーから取得されるデータの送信を停める。送信を停めるいずれかのノードは、判断を行ったノードと同一でもよいし、異なるノードでもよい。異なるノードであれば、判断を行ったノードは、判断結果を、送信を停めるノードに通知する。
図1の例では、ノード#2が、ノード#2のセンサーから取得されるデータの送信を停める。転送された結果、検査員端末101は、システム100内のセンサーのデータを収集する。収集されるデータは、たとえば、所定領域Aの応力集中が発生した箇所付近にある各ノードのセンサーのデータと、所定領域Aの応力集中が発生した箇所付近にないノード群のうちのあるノードがノード群を代表して送信した、あるノードのセンサーのデータとなる。
【0021】
データの送信を停めることにより、システム100は、転送されるデータの量を減らすことができる。転送されるデータの量が減ることにより、検査員端末101は、データ収集要求をノード#1〜#Nに送信してから、データを受信するまでの時間を短くすることができる。たとえば、ノード#2のデータの送信を停めない場合、ノード#2は、周辺のノードとして、充電済みのノード#5にノード#2のデータを送信する。次に、ノード#1がノード#1のデータをノード#5に送信するには、充電時間経過した後となる。これに対し、本実施の形態にかかるシステム100は、ノード#2のデータの送信を停めるため、充電時間待たずにデータを送信できるため、データを受信するまでの時間を短くすることができる。続けて、
図2〜
図34を用いて、本実施の形態にかかるシステム100について説明する。
【0022】
(ノードのハードウェア構成例)
図2は、ノードのハードウェア構成例を示すブロック図である。
図2の例では、ノード#1を例として、ノード#1のハードウェア構成を示す。他のノードも、ノード#1と同様のハードウェア構成となる。ノード#1は、マイクロプロセッサ(以下、「MCU(Micro Control Unit)」と称する。)201と、センサー202と、無線通信回路203と、RAM(Random Access Memory)204と、ROM(Read Only Memory)205と、不揮発メモリ206と、アンテナ207と、ハーベスタ208と、バッテリ209と、PMU(Power Management Unit)210と、を有する。ノード#1は、MCU201と、センサー202と、無線通信回路203と、RAM204と、ROM205と、不揮発メモリ206と、を接続するバス211を有する。
【0023】
MCU201は、ノード#1の全体の制御を司る演算処理装置である。たとえば、MCU201は、センサー202が検出したデータを処理する。センサー202は、設置箇所における所定の変位量を検出する装置である。センサー202は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ207は、親機と無線通信する電波を送受信する。無線通信回路203(RF(Radio Frequency))は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ207を介して送信する。無線通信回路203は、数10cm付近にある他ノードと通信可能とする短距離無線が採用された通信回路でよい。
【0024】
RAM204は、MCU201における処理の一時データを格納する記憶装置である。ROM205は、MCU201が実行する処理プログラムなどを格納する記憶装置である。不揮発メモリ206は、書き込み可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、不揮発メモリ206は、フラッシュメモリ等が採用される。
【0025】
ハーベスタ208は、
図1で説明したエナジーハーベスト素子であり、ノード#1の設置箇所における外部環境、たとえば、光、振動、温度、無線電波(受信電波)などのエネルギー変化に基づき発電を行う装置である。また、ハーベスタ208は、センサー202によって検出された変位量に応じて発電を行ってもよい。バッテリ209は、ハーベスタ208により発電された電力を蓄える装置である。すなわち、ノード#1は、外部電源などが不要であり、動作に要求される電力を自装置の内部で生成する。PMU210は、バッテリ209によって蓄えられた電力を、ノードの各部に駆動電源として供給する制御を行う装置である。
【0026】
また、不揮発メモリ206は、自ノードID(IDentification)と、閾値と、グループ代表ノードIDと、グループメンバーID一覧と、過去のデータとを記憶する領域を有する。自ノードIDは、各ノードに付与された識別情報である。本実施の形態では、#1、…、#NをIDとして説明する。閾値は、グループ化するかしないかに用いる値である。閾値は、システム100の管理者等により指定される。たとえば、同一のグループに所属するノード数を増やして、システム100内の通信量を少なくするならば、システム100の管理者は、閾値を大きく指定する。
【0027】
グループ代表ノードIDは、自ノードが所属するグループを代表するノードIDである。グループメンバーID一覧は、グループに所属するノードIDの一覧である。過去のデータは、センサー202から取得されたデータである。
【0028】
(検査員端末101のハードウェア構成例)
図3は、検査員端末のハードウェア構成例を示すブロック図である。検査員端末101は、プロセッサ(CPU(Central Processing Unit))301と、大容量のROM302、RAM303、不揮発メモリ304と、インターフェース(I/O(Input/Output))回路305と、無線通信回路311と、アンテナ312と、ネットワークI/F313と、を有する。CPU301は、ノードのMCU201よりも高性能であってもよい。検査員端末101は、CPU301と、ROM302と、RAM303と、不揮発メモリ304と、I/O回路305と、を接続するバス306を有する。検査員端末101は、ノードと異なり外部電源に基づき動作してもよいし、内部電源に基づき動作してもよい。不揮発メモリ304は、システム100内のノードID一覧を記憶する。
【0029】
また、I/O回路305には、無線通信回路311およびアンテナ312と、ネットワークI/F313が接続される。これにより、検査員端末101は、無線通信回路311およびアンテナ312を介して、ノードと無線通信することができる。なお、無線通信回路311は、数10cm付近にあるノードと通信可能とする短距離無線が採用された通信回路でもよいし、遠方にあるノードと通信可能とする中長距離無線が採用された通信回路でもよい。さらに、検査員端末101は、ネットワークI/F313を介して、IP(Internet Protocol)のプロトコル処理などにより、インターネットなどのネットワーク314を介してサーバなどの外部装置と通信を行うことができる。
【0030】
(システム100の機能)
次に、システム100の機能について説明する。
図4は、システムの機能例を示すブロック図である。システム100は、送信部401と、受信部402と、判断部403と、設定部404と、制御部405と、を含む。送信部401〜制御部405は、記憶装置に記憶されたプログラムをMCU201が実行することにより、送信部401〜制御部405の機能を実現する。記憶装置は、具体的には、たとえば、
図2に示したROM205、RAM204、不揮発メモリ206などである。
【0031】
また、送信部401〜制御部405は、ノード#1〜#Nのいずれのノードが有してもよい。たとえば、ノード#1が送信部401を有し、ノード#2が受信部402〜制御部405を有してもよい。または、ノード#1、#2が送信部401を有し、ノード#3が受信部402と、判断部403とを有し、ノード#4が設定部404と、制御部405と、を有してもよい。
【0032】
送信部401は、自ノードのセンサー202から取得されるデータを送信する。また、設定部404が第1および第2のノードを同一のグループに設定した場合、送信部401は、第1のノードにより第1のセンサー202から取得されるデータとともに、第1および第2のノードが同一のグループであることを示す識別情報を送信してもよい。第1および第2のノードが同一のグループであることを示す識別情報は、各ノードの識別情報や他のグループの識別情報と区別ができればどのような値でもよく、たとえば、グループに属するノードの識別情報を結合した値である。
【0033】
たとえば、設定部404がノード#1、#2を同一のグループに設定した場合、送信部401は、ノード#1のデータと、ノード#1、#2の識別情報を結合した#1#2とを送信する。センサー202から取得するデータは、たとえば、センサー202が圧電素子であれば圧力の値であり、センサー202が温度を検出する素子であれば温度の値であり、センサー202が光を検出する素子であれば照度の値や光度の値である。
【0034】
また、送信するデータは、センサー202から取得したデータそのままでもよいし、センサー202から取得したデータを符号化したデータでもよい。また、送信部401は、第1のノードによって、第1のセンサー202から取得されるデータと、グループ内のデータの平均値、分散、といったグループ内のセンサー202のデータの特徴値と、を送信してもよい。
【0035】
また、設定部404が第1のノードと第2のノードとを同一のグループに設定した後に第2のノードをグループから除外した場合、送信部401は、第1のノードによって、第1のセンサー202から取得されるデータと、第1のノードのIDとを送信してもよい。
【0036】
また、設定部404が第1のノードと第2のノードとを同一のグループに設定した後に第1のノードをグループから除外した場合、送信部401は、第1のノードによって、第1のセンサー202から取得されるデータと、第1のノードのIDとを送信してもよい。
【0037】
また、設定部404が第1のノードと複数の第2のノードとを同一のグループに設定した後に、第1のノードをグループから除外したとする。このとき、送信部401は、グループ内の第2のノードのいずれかにより、複数の第2のノードのセンサー202から取得されるデータとともに、グループ内のノードの識別情報を送信してもよい。
【0038】
たとえば、第1のノードがノード#1であり、第2のノードがノード#2、#3であり、ノード#1がグループから除外されたとする。このとき、送信部401は、ノード#2、#3のうちのいずれかのノードによって、いずれかのノードのデータと、ノード#1、#2の識別情報となる#1、#2とを送信する。また、送信部401の送信先は、無線通信回路203によって通信可能な位置にある、周辺のノードである。
【0039】
受信部402は、他ノードのセンサー202から取得されるデータを受信する。たとえば、受信部402は、送信部401によって送信されたデータを受信する。なお、受信したデータは、RAM204、不揮発メモリ206等の記憶領域に記憶される。
【0040】
判断部403は、第1のノードが有する第1のセンサー202から取得されるデータと、複数のノードのうちの第2のノードが有する第2のセンサー202から取得されるデータとの内容が同等であるか否かを判断する。第1のノードと第2のノードは、ホップせずに直接通信可能であってもよいし、所定のホップ数で通信可能であってもよい。所定のホップ数は、システム100の管理者等により指定される。たとえば、システム100の管理者は、所定領域Aや、センサー202が測定する対象等によってホップ数を設定する。
【0041】
また、判断部403は、第1のセンサー202から新たに取得されるデータと第2のセンサー202から新たに取得されるデータとの内容が同等であるか判断してもよい。このとき、第1のセンサー202から新たに取得されるデータが前回判断時の第1のセンサー202から取得されるデータから変化したとする。このとき、判断部403は、第1のセンサー202から新たに取得されるデータと第2のセンサー202から新たに取得されるデータとの内容が同等でないと判断してもよい。第2のセンサー202から新たに取得されるデータが前回判断時の第2のセンサー202から取得されるデータが変化した際も同様である。
【0042】
なお、受信したデータは、RAM204、不揮発メモリ206等の記憶領域に記憶される。また、判断部403は、判断結果を、判断部403を実行したノードと異なる他のノードに送信してもよい。
【0043】
設定部404は、判断部403によって第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等であると判断された場合、第1のノードと第2のノードとを同一のグループに設定する。
【0044】
また、設定部404は、第2のノードによる第2のセンサー202から取得されるデータの送信を再開する場合、第2のノードをグループから除外する。
【0045】
また、設定部404は、第2のノードによる第2のセンサー202から取得されるデータの送信を停めた後に、第1のセンサー202から取得されるデータの内容が変化した場合、第1のノードをグループから除外する。なお、設定結果は、不揮発メモリ206のグループメンバーID一覧を記憶する領域に記憶される。
【0046】
制御部405は、判断部403が第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等であると判断した場合、第2のノードによる第2のセンサー202から取得されるデータの送信を停める。
【0047】
また、制御部405は、次の条件を満たす場合、第2のノードによる第2のセンサー202から取得されるデータの送信を再開してもよい。次の条件とは、判断部403が第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等ではないと判断した場合である。
【0048】
図5は、ノードおよび検査員端末が送信する信号一覧の例を示す説明図である。表501は、ノードおよび検査員端末101が送信する信号の一覧を示す。ノードおよび検査員端末101は、13種類の信号を送信する。具体的には、グループ作成に用いられる信号は、グループ作成依頼と、グループ作成応答(新規)とである。グループの変更に用いられる信号は、グループ作成応答(追加)と、メンバー追加依頼と、グループ除外依頼と、グループ除外応答と、メンバー除外依頼と、代表変更依頼と、代表変更応答と、グループメンバーID一覧信号と、代表更新依頼とである。データ収集に用いられる信号は、データ収集要求と、データ収集応答とである。
【0049】
グループ作成依頼は、グループに未所属であり、センサー202が検出したデータの変化が閾値超となった際に送信される信号である。グループ作成依頼の送信元は、閾値超となったノードである。グループ作成依頼の送信先は、周辺のノードである。グループ作成依頼の付属データは、送信元IDと、送信元のセンサーが検出したデータとである。
【0050】
グループ作成応答(新規)は、グループ作成依頼を受信し、グループに未所属であり、かつ、グループ作成依頼のデータと自ノードのデータとの差分が閾値以内となった際に送信される信号である。以下、2つデータの差分とは、2つのデータの差の絶対値であるとする。グループ作成応答(新規)の送信元は、グループ作成依頼を受信したノードである。グループ作成応答(新規)の送信先は、グループ作成依頼を送信したノードである。グループ作成応答(新規)の付属データは、送信元IDである。
【0051】
グループ作成応答(追加)は、グループ作成依頼を受信し、グループに所属し、かつ、グループ作成依頼のデータと自ノードのデータとの差分が閾値以内となった際に送信される信号である。グループ作成応答(追加)の送信元は、グループ作成依頼を受信したノードである。グループ作成応答(追加)の送信先は、グループ作成依頼を送信したノードである。グループ作成応答(追加)の付属データは、グループ代表ノードIDである。
【0052】
メンバー追加依頼は、グループ作成応答(追加)を送信した際に送信される信号である。メンバー追加依頼の送信元は、グループ作成応答(追加)を送信したノードである。メンバー追加依頼の送信先は、グループ代表ノードである。メンバー追加依頼の付属データは、追加するノードのIDである。
【0053】
グループ除外依頼は、グループに所属し、かつ、センサーが検出したデータの変化が閾値超となった際に送信される信号である。グループ除外依頼の送信元は、閾値超となったノードである。グループ除外依頼の送信先は、周辺のノードである。グループ除外依頼の付属データは、送信元IDと、送信元のセンサーが検出したデータとである。
【0054】
グループ除外応答は、グループ除外依頼を受信し、グループに所属し、かつ、グループ除外依頼のデータと自身のデータの差分が閾値超となった際に送信される信号である。グループ除外応答の送信元は、グループ除外依頼を受信したノードである。グループ除外応答の送信先は、グループ除外依頼を送信したノードである。グループ除外応答の付属データは、グループ代表ノードIDである。
【0055】
メンバー除外依頼は、グループ除外応答を送信した際に送信される信号である。メンバー除外依頼の送信元は、グループ除外応答を送信したノードである。メンバー除外依頼の送信先は、グループ代表ノードである。メンバー除外依頼の付属データは、削除するノードのIDである。
【0056】
データ収集要求は、データを収集する際に送信される信号である。データ収集要求の送信元は、検査員端末である。データ収集要求の送信先は、全てのノードである。
【0057】
データ収集応答は、データ収集要求を受信して、グループ未所属またはグループ代表ノードとなるノードが送信する信号である。データ収集応答の送信元は、グループ未所属のノード、またはグループ代表ノードである。データ収集応答の送信先は、周辺のノードである。データ収集応答の付属データは、送信元IDと、グループメンバーのIDと、送信元のセンサーが検出したデータとである。
【0058】
代表変更依頼は、自ノードがグループ代表ノードであり、かつ、センサー202が検出したデータの変化が閾値超となった際に送信される信号である。代表変更依頼の送信元は、閾値超となったグループ代表ノードである。代表変更依頼の送信先は、周辺のノードである。代表変更依頼の付属データは、送信元IDと、送信元のセンサーが検出したデータとである。送信元IDは、グループ代表ノードIDと同一となる。
【0059】
代表変更応答は、代表変更依頼を受信し、代表変更依頼の送信元が自ノードのグループ代表ノードであり、かつ、代表変更依頼のデータと自ノードのデータの差分が閾値超となった際に送信される信号である。代表変更応答の送信元は、代表変更依頼を受信したノードである。代表変更応答の送信先は、代表変更依頼を送信したノードである。代表変更応答の付属データは、自ノードIDである。
【0060】
グループメンバーID一覧信号は、代表変更応答を受信し、かつ、自ノードがグループ代表ノードであるノードが送信する信号である。グループメンバーID一覧信号の送信元は、代表変更応答を受信したグループ代表ノードである。グループメンバーID一覧信号の送信先は、代表変更応答を最初に発信したノードである。グループメンバーID一覧信号の付属データは、グループメンバーID一覧である。
【0061】
代表更新依頼は、グループメンバーID一覧信号を受信し、自ノードが新グループ代表ノードとなったノードが送信する信号である。代表更新依頼の送信元は、新グループ代表ノードである。代表更新依頼の送信先は、同じグループのノードである。代表更新依頼の付属データは、旧グループ代表ノードIDと、新グループ代表ノードIDとである。新グループ代表ノードIDは、自ノードIDと一致する。
【0062】
なお、
図5に示した信号以外の信号があってもよい。たとえば、検査員端末は、閾値を変更する信号を、全てのノードに送信してもよい。閾値を変更する信号を受信したノードは、閾値を変更する。
【0063】
次に、
図5にて示した信号を用いて、グループの作成と、グループへのメンバーの追加と、グループからのメンバーの削除と、グループの代表ノードの変更との一例を、
図6〜
図16を用いて説明する。
【0064】
図6は、グループの作成例を示す説明図(その1)である。
図6に示すシステム100は、ノード#1〜#9を含む。ノード#1の周辺のノードは、ノード#2〜#9とする。また、ノードID#1のセンサー202から取得したデータは、15であるとする。同様に、ノード#2〜#9の各センサー202から取得したデータは、それぞれ、17、13、11、9、12、14、18、21であるとする。
【0065】
ノード#1は、取得したデータと前回のデータとを比較して、2つのデータの差分が閾値Aを超えたら、周辺のノードに問い合わせを行う。ここで、閾値Aを、4とし、前回のデータを、10とする。ここで、前回のデータと比較せずに、過去のデータの平均値を用いてもよい。また、ノード#1は、2つのデータの差分でなく、2つのデータの割合が閾値を超えるか否かを判断してもよい。
【0066】
図6の例では、|15−10|=5>閾値A=4であり、差分が閾値Aを超えたため、ノード#1は、周辺のノードであるノード#2〜#9に、グループ作成依頼を送信する。なお、|x|は、xの絶対値を示す。グループ作成依頼の付属データは、送信元ID:#1と、送信元となるノード#1のセンサー202が検出したデータ:15とである。
【0067】
図7は、グループの作成例を示す説明図(その2)である。
図7に示すシステム100は、ノード#1がグループ作成依頼を送信した後の状態である。グループ作成依頼を受信したノード#2〜#9は、自ノードのセンサー202から取得した第1のデータと、受信したノード#1のセンサー202から取得した第2のデータとの差分が閾値B以内であれば、第1と第2のデータの内容が同等であると判断する。ここで、閾値Bを、5とする。
【0068】
たとえば、ノード#2は、|17−15|=2≦閾値B=5であるため、ノード#2は、第1と第2のデータの内容が同等であると判断する。同様に、ノード#3、#4、#6〜#8も、第1と第2のデータの内容が同等であると判断する。ノード#5、#9は、第1と第2のデータの差分が閾値Bより大きくなったため、第1と第2のデータの内容が同等でないと判断する。
【0069】
第1と第2のデータの内容が同等であると判断した、ノード#2〜#4、#6〜#8は、ノード#1と同一のグループであるという情報を登録するとともに、グループ作成応答(新規)をノード#1に送信する。グループ作成応答(新規)は、各送信元ノードのIDとなる。同一のグループであるという情報は、たとえば、グループの代表であるグループ代表ノードのIDでもよいし、グループを唯一識別可能な値でもよい。また、グループの代表ノードは、同一のグループ内ならどのノードであってもよい。本実施の形態では、グループ作成依頼を送信したノード#1をグループ代表ノードとする。したがって、ノード#2〜#4、#6〜#8は、ノード#1のID:#1をグループ代表ノードとして不揮発メモリ206に記憶する。
【0070】
グループ作成応答(新規)を受信したノード#1は、グループ作成応答(新規)の送信元IDを同一グループに所属するメンバーとして不揮発メモリ206のグループメンバーID一覧に記憶する。
図7の例では、ノード#1は、同一グループに所属するメンバーとして、#2〜#4、#6〜#8を不揮発メモリ206のグループメンバーID一覧に記憶する。
【0071】
図8は、グループの作成例を示す説明図(その3)である。
図8に示すシステム100は、グループを登録した後の状態である。
図8に示す通り、ノード#1〜#4、#6〜#8が同一グループとなる。さらに、ノード#1がグループ代表ノードとなり、ノード#2〜#4、#6〜#8が、グループ所属ノードとなる。
【0072】
図9は、グループへのメンバーの追加例を示す説明図(その1)である。
図9に示すシステム100は、ノード#10を含み、ノード#1〜#4、#6〜#8が同一グループとなった後の状態を示す。ノード#10の周辺のノードは、ノード#6であるとする。また、ノード#10は、グループに所属していない。さらに、ノード#10のセンサー202から取得したデータは、16であるとする。
【0073】
ノード#10は、取得したデータと過去のデータとを比較して、差分が閾値Aを超えたら、周辺のノードに問い合わせを行う。ここでは、差分が閾値Aを超えたとして、ノード#10は、グループ作成依頼を、周辺のノードであるノード#6に送信する。グループ作成依頼の付属データは、送信元ID:#10と、送信元となるノード#10のセンサー202から取得したデータ:16とである。
【0074】
図10は、グループへのメンバーの追加例を示す説明図(その2)である。
図10に示すシステム100は、ノード#6がグループ作成依頼を受信した後の状態である。ノード#6は、自ノードとなるノード#6のセンサー202から取得した第1のデータと、ノード#10のセンサー202から取得した第2のデータとを比較して、差分が閾値B以内か否かを判断する。具体的には、ノード#6は、|16−12|=4≦閾値B=5であるため、ノード#6は、第1のデータと第2のデータの内容が同等であると判断する。
【0075】
第1のデータと第2のデータの内容が同等であると判断した場合、ノード#10をノード#6が所属するグループに所属させるために、ノード#6は、グループ作成応答(追加)をノード#10に送信する。グループ作成応答(追加)の付属データは、グループ代表ノードID:#1である。グループ作成応答(追加)を受信したノード#10は、ノード#1のID:#1をグループ代表ノードとして不揮発メモリ206に記憶する。
【0076】
また、第1のデータと第2のデータの内容が同等であると判断した場合、ノード#10をノード#6が所属するグループに所属させることをグループ代表ノードに通知するために、ノード#6は、メンバー追加依頼をグループ代表ノードであるノード#1に送信する。メンバー追加依頼の付属データは、追加するノードのID:#10である。メンバー追加依頼を受信したノード#1は、同一グループに所属するメンバーとして、#10を不揮発メモリ206に記憶する。以上により、ノード#1〜#4、#6〜#8、#10が同一のグループとなる。
【0077】
図11は、グループからのメンバーの削除例を示す説明図(その1)である。
図11に示すシステム100は、ノード#10を、ノード#1〜#4、#6〜#8と同一のグループに追加した状態である。そして、
図11では、ノード#10のデータが変化して、40になったとする。
図11の例では、|40−16|=24>閾値A=4であるため、ノード#10は、データが変化したことを検出する。
【0078】
データが変化したことを検出した場合、ノード#10は、所属中のグループから自ノードを除外するべく、グループ除外依頼を、周辺のノードであるノード#6に送信する。グループ除外依頼の付属データは、送信元ID:#10と、送信元のセンサー202が検出したデータ:40とである。
【0079】
図12は、グループからのメンバーの削除例を示す説明図(その2)である。
図12に示すシステム100は、ノード#6がグループ除外依頼を受信した後の状態である。ノード#6は、自ノードとなるノード#6のセンサー202から取得した第1のデータと、ノード#10のセンサー202から取得した第2のデータとを比較して、差分が閾値B以内か否かを判断する。具体的には、ノード#6は、|40−12|=28>閾値B=5であるため、ノード#6は、第1のデータと第2のデータの内容が同等でないと判断する。
【0080】
第1のデータと第2のデータの内容が同等でないと判断した場合、ノード#10をノード#6が所属するグループから除外させるために、ノード#6は、グループ除外応答をノード#10に送信する。グループ除外応答の付属データは、グループ代表ノードID:#1である。グループ除外応答を受信したノード#10は、不揮発メモリ206のグループ代表ノードを消去する。
【0081】
また、第1のデータと第2のデータの内容が同等でないと判断した場合、ノード#10をノード#6が所属するグループから除外させるために、ノード#6は、メンバー除外依頼をグループ代表ノードであるノード#1に送信する。メンバー除外依頼の付属データは、削除するノードのID:#10である。メンバー除外依頼を受信したノード#1は、不揮発メモリ206のグループメンバーID一覧から、メンバー除外依頼の削除するノードのIDを削除する。以上により、ノード#1〜#4、#6〜#8が同一のグループとなる。
【0082】
図13は、グループ代表ノードの変更例を示す説明図(その1)である。
図13に示すシステム100は、ノード#1〜#3、#7、#8が同一のグループとなった状態である。また、ノードID#1の周辺のノードは、ノード#2〜#9である。そして、
図13では、ノード#1のデータが変化して、36になったとする。
図13の例では、|36−15|=21>閾値A=4であるため、ノード#1は、データが変化したことを検出する。
【0083】
データが変化したことを検出した場合、ノード#1は、グループ代表ノードを変更すべく、代表変更依頼を、周辺のノードであるノード#2〜#9に送信する。代表変更依頼の付属データは、送信元ID:#1と、送信元となるノード#1のセンサー202が検出したデータ:36とである。
【0084】
図14は、グループ代表ノードの変更例を示す説明図(その2)である。
図14に示すシステム100は、ノード#1が代表変更依頼を送信した後の状態である。また、
図14の状態では、ノード#2が、初めに代表変更依頼の応答である代表変更応答を、ノード#1に送信したとする。代表変更応答の付属データは、自ノードID:#2である。
【0085】
なお、ノード#3、#7、#8も、代表変更応答をノード#1に送信するが、ノード#1は、初めに受信した代表変更応答以外の代表変更応答を破棄する。また、ノード#4〜#6、#9は、代表変更依頼を受信した後、代表変更依頼の送信元IDと、不揮発メモリ206のグループ代表ノードの記憶内容が一致しないため、他のグループに関する依頼であるとして、代表変更依頼を破棄する。
【0086】
図15は、グループ代表ノードの変更例を示す説明図(その3)である。
図15に示すシステム100は、ノード#1が代表変更応答を受信した後の状態である。ノード#1は、初めに代表変更応答を送信したノード#2を新グループ代表ノードとして、グループメンバーID一覧信号を、ノード#2に送信する。グループメンバーID一覧信号の付属データは、グループメンバーID一覧である。
図15に示すグループメンバーID一覧の記憶内容は、#2、#3、#7、#8である。
【0087】
グループメンバーID一覧信号を受信したノード#2は、グループメンバーID一覧信号のグループメンバーID一覧から、自ノードIDである#2を取り除く。そして、ノード#2は、自ノードIDである#2を取り除いた#3、#7、#8を同一グループに所属するメンバーとして不揮発メモリ206のグループメンバーID一覧に記憶する。
【0088】
図16は、グループ代表ノードの変更例を示す説明図(その4)である。
図16に示すシステム100は、ノード#2がグループメンバーID一覧信号を受信した後の状態である。新グループ代表ノードとなったノード#2は、不揮発メモリ206のグループメンバーID一覧を参照して、代表更新依頼を、同一のグループであるノード#3、#7、#8に送信する。代表更新依頼の付属データは、旧グループ代表ノードID:#1と、新グループ代表ノードID:#2とである。
【0089】
代表更新依頼を受信したノード#3、#7、#8は、代表更新依頼の旧グループ代表ノードと、不揮発メモリ206のグループ代表ノードIDを比較して一致した場合に、代表更新依頼の新グループ代表ノードを不揮発メモリ206のグループ代表ノードに記憶する。
【0090】
次に、
図6〜
図16を用いて説明したグループの作成と、グループへのメンバーの追加と、グループからのメンバーの削除と、グループの代表ノードの変更とを、
図17〜
図21に示すシーケンス図を用いて説明する。
図17〜
図21に示すシステム100は、ノードID#1〜#Nを含む。
【0091】
図17は、グループの作成例を示すシーケンス図である。
図17に示すノード#1〜#Nは、グループに所属していない。また、ノード#1の周辺のノードは、ノード#2〜#Nであるとする。
【0092】
ノード#1は、十分充電した後に、データ取得処理を実行する(ステップS1701)。データ取得処理の詳細は、
図22にて後述する。また、ノード#1は、データ取得処理が実行可能な電力量を充電すればよい。
図17の例では、ノード#1は、今回のデータと前回のデータとの差分が閾値Aを超えたとして、グループ作成依頼を周辺のノードであるノード#2、#3、…、#Nに送信する(ステップS1702)。
【0093】
グループ作成依頼を受信したノード#2、#3、…、#Nは、グループ作成依頼受信処理を実行する(ステップS1703)。グループ作成依頼受信処理の詳細は、
図23にて後述する。
図17の例では、ノード#3、…#Nは、グループ作成依頼の送信元のセンサー202が検出したデータと、自ノードのセンサー202が検出したデータとを比較して、差分が閾値Bより大きくなったため、グループ作成依頼に対する応答を行わない。一方、ノード#2は、グループ作成依頼の送信元のセンサー202が検出したデータと、自ノードのセンサー202が検出したデータとの差分が閾値B以内となったため、グループ作成依頼に対するグループ作成応答(新規)をノード#1に送信する(ステップS1704)。
【0094】
グループ作成依頼を受信したノード#1は、グループ作成応答(新規)受信処理を実行する(ステップS1705)。グループ作成応答(新規)受信処理の詳細は、
図25にて後述する。
【0095】
図18は、グループへのメンバーの追加例を示すシーケンス図である。
図18に示すノード#1は、グループに所属していない。そして、ノード#2〜#Nは、同一グループに所属する。ノード#3は、ノード#2〜#Nが所属するグループのグループ代表ノードである。また、ノード#1の周辺のノードは、ノード#2、#Nであるとする。
【0096】
ノード#1は、十分充電した後に、データ取得処理を実行する(ステップS1801)。
図18の例では、ノード#1は、今回のデータと前回のデータとの差分が閾値Aを超えたとして、グループ作成依頼を周辺のノードであるノード#2、#Nに送信する(ステップS1802)。
【0097】
グループ作成依頼を受信したノード#2、#Nは、グループ作成依頼受信処理を実行する(ステップS1803)。
図18の例では、ノード#Nは、グループ作成依頼の送信元のセンサー202が検出したデータと、自ノードのセンサー202が検出したデータとの差分が閾値Bより大きくなったため、グループ作成依頼に対する応答を行わない。一方、ノード#2は、送信元のセンサー202が検出したデータと自ノードのセンサー202が検出したデータとの差分が閾値B以内であり、かつ自ノードがグループに所属するため、グループ作成依頼に対するグループ作成応答(追加)をノード#1に送信する(ステップS1804)。
【0098】
グループ作成応答(追加)を受信したノード#1は、グループ作成応答(追加)受信処理を実行する(ステップS1805)。グループ作成応答(追加)受信処理の詳細は、
図26にて後述する。
【0099】
また、ノード#2は、グループ作成依頼受信処理の中で、メンバー追加依頼を、グループ代表ノードであるノード#3に送信する(ステップS1806)。メンバー追加依頼を受信したノード#3は、メンバー追加依頼受信処理を実行する(ステップS1807)。メンバー追加依頼受信処理の詳細は、
図27にて後述する。
【0100】
図19は、グループからのメンバーの削除例を示すシーケンス図である。
図19に示すノード#1〜#Nは、同一グループに所属する。ノード#3は、ノード#1〜#Nが所属するグループのグループ代表ノードである。また、ノード#1の周辺のノードは、ノード#2、#Nであるとする。
【0101】
ノード#1は、十分充電した後に、データ取得処理を実行する(ステップS1901)。
図19の例では、ノード#1は、今回のデータと前回のデータとの差分が閾値Aを超えており、かつ、グループに所属するため、グループ除外依頼を周辺のノードであるノード#2、#Nに送信する(ステップS1902)。
【0102】
グループ除外依頼を受信したノード#2、#Nは、グループ除外依頼受信処理を実行する(ステップS1903)。グループ除外依頼受信処理の詳細は、
図24にて後述する。ノード#Nは、グループ作成依頼の送信元のセンサー202が検出したデータと、自ノードのセンサー202が検出したデータとの差分が閾値B以内となったため、グループ除外依頼に対する応答を行わない。一方、ノード#2は、グループ作成依頼の送信元のセンサー202が検出したデータと自ノードのセンサー202が検出したデータとの差分が閾値Bより大きくなったため、グループ除外応答をノード#1に送信する(ステップS1904)。
【0103】
グループ除外応答を受信したノード#1は、グループ除外応答受信処理を実行する(ステップS1905)。グループ除外応答受信処理の詳細は、
図28にて後述する。
【0104】
また、ノード#2は、グループ除外依頼受信処理の中で、メンバー除外依頼を、グループ代表ノードであるノード#3に送信する(ステップS1906)。メンバー除外依頼を受信したノード#3は、メンバー除外依頼受信処理を実行する(ステップS1907)。メンバー除外依頼受信処理の詳細は、
図29にて後述する。
【0105】
図20は、グループ代表ノードの変更例を示すシーケンス図である。
図20に示すノード#1は、グループに所属していない。そして、ノード#2〜#Nは、同一グループに所属する。ノード#2は、ノード#2〜#Nが所属するグループのグループ代表ノードである。また、ノード#2の周辺のノードは、ノード#1、#3、#Nであるとする。
【0106】
ノード#2は、十分充電した後に、データ取得処理を実行する(ステップS2001)。
図20の例では、ノード#2は、今回のデータと前回のデータとの差分が閾値Aを超えたとして、代表変更依頼を周辺のノードであるノード#1、#3、#Nに送信する(ステップS2002)。
【0107】
代表変更依頼を受信したノード#1、#3、#Nは、代表変更依頼受信処理を実行する(ステップS2003)。代表変更依頼受信処理の詳細は、
図30にて後述する。ノード#1は、受信した代表変更依頼の送信元IDと不揮発メモリ206の代表ノードIDとが異なるため、自ノードに関する代表変更依頼ではないと判断し、代表変更依頼に対する応答を行わない。ノード#3、#Nは、受信した代表変更依頼の送信元IDと不揮発メモリ206の代表ノードIDとが一致し、自ノードに関する代表変更依頼であると判断し、代表変更依頼に対する応答である代表変更応答をノード#2に送信する(ステップS2004)。
図20の例では、ノード#3が、ノード#Nより先に代表変更応答を送信したとする。
【0108】
ノード#3からの代表変更応答を受信したノード#2は、代表変更応答受信処理を実行する(ステップS2005)。代表変更応答受信処理の詳細は、
図31にて後述する。ノード#2は、代表変更応答受信処理の中で、ノード#3をグループの新グループ代表ノードとして、グループメンバーID一覧信号をノード#3に送信する(ステップS2006)。
【0109】
グループメンバーID一覧信号を受信したノード#3は、グループメンバーID一覧信号受信処理を実行する(ステップS2007)。グループメンバーID一覧信号受信処理の詳細は、
図32にて後述する。ノード#3は、グループメンバーID一覧信号受信処理の中で、代表変更依頼を、同一のグループに所属するノード#Nに送信する(ステップS2008)。代表変更依頼を受信したノード#Nは、代表変更依頼受信処理を実行する(ステップS2009)。代表変更依頼受信処理の詳細は、
図33に後述する。
【0110】
図21は、データ収集時の動作例を示すシーケンス図である。
図21に示すノード#1は、グループに所属していない。また、ノード#2〜#Nは、同一グループに所属する。ノード#3は、ノード#2〜#Nが所属するグループのグループ代表ノードである。さらに、ノード#1の周辺の装置として、検査員端末101と、ノード#2とがあるとする。さらに、ノード#2の周辺の装置は、ノード#1、#Nであるとする。さらに、ノード#3の周辺の装置は、ノード#2であるとする。
【0111】
検査員端末101は、検査員端末101を操作する検査員からの指示等により、データ収集要求処理を実行する(ステップS2101)。データ収集要求処理は、
図34に示すデータ収集処理の一部である。データ収集要求処理については、
図34にて後述する。検査員端末101は、データ収集要求処理の中で、データ収集要求を、ノード#1〜#3、#Nに送信する(ステップS2102)。データ収集要求を受信したノード#1〜#3、#Nは、データ収集要求受信処理を実行する(ステップS2103)。データ収集要求受信処理は、
図34に示すデータ収集処理の一部である。データ収集要求受信処理については、
図34にて後述する。
【0112】
ノード#1は、グループ未所属であるため、データ収集要求受信処理の中で、自ノードのセンサー202が検出したデータを含むデータ収集応答を、周辺の装置に送信する(ステップS2104)。
図21の例では、ノード#1の周辺の装置として、検査員端末101と、ノード#2があるため、ノード#1は、検査員端末101と、ノード#2とに、自ノードのセンサー202が検出したデータを送信する。
図21では、ノード#2への送信についての図示を省略する。これにより、検査員端末101は、ノード#1のセンサー202が検出したデータを収集することができる。
【0113】
また、ノード#2、#Nは、グループ所属であり、グループ代表でないため、データ収集要求受信処理の中で、自ノードのセンサー202が検出したデータを、周辺の装置に送信しない。
【0114】
一方、ノード#3は、グループ代表であるため、データ収集要求受信処理の中で、自ノードのセンサー202が検出したデータを含むデータ収集応答を、周辺の装置に送信する(ステップS2105)。
図21の例では、ノード#3の周辺の装置として、ノード#2があるため、ノード#3は、ノード#2に、データ収集応答を送信する。ノード#3からデータ収集応答を受信したノード#2は、受信したデータ収集応答を周辺の装置に転送する(ステップS2106)。
図21の例では、ノード#2の周辺の装置として、ノード#1とノード#3があり、ノード#3はデータ収集応答の転送元であるため、ノード#2は、ノード#1に、データ収集応答を転送する。
【0115】
ノード#2からデータ収集応答を受信したノード#1は、受信したデータ収集応答を周辺の装置に転送する(ステップS2107)。
図21の例では、ノード#1の周辺の装置として、検査員端末101とノード#2があり、ノード#2はデータ収集応答の転送元であるため、ノード#1は、検査員端末101に、データ収集応答を転送する。これにより、検査員端末101は、ノード#2、#3、#Nが所属するグループを代表するノード#3のセンサー202が検出したデータを収集することができる。
【0116】
次に、
図17〜
図21を用いて説明したシーケンス図にて示した処理のフローチャートを、
図22〜
図34を用いて説明する。
【0117】
図22は、データ取得処理手順の一例を示すフローチャートである。データ取得処理は、センサー202からデータを取得して、取得した結果に応じて他ノードに信号を送信する処理である。また、データ取得処理は、全てのノードにより実行される。
【0118】
ノードは、センサーが検出したデータを取得する(ステップS2201)。次に、ノードは、取得したデータと前回のデータとの差分が閾値A以上か否かを判断する(ステップS2202)。取得したデータと前回のデータとの差分が閾値A以上である場合(ステップS2202:Yes)、ノードは、続けて、自ノードが代表ノードか否かを判断する(ステップS2203)。具体的には、ノードは、自ノードの不揮発メモリ206に格納された代表ノードIDに格納された値が自ノードのIDであれば、自ノードが代表ノードであると判断する。
【0119】
自ノードが代表ノードでない場合(ステップS2203:No)、ノードは、続けて、自ノードがグループに所属するか否かを判断する(ステップS2204)。自ノードがグループに所属しない場合(ステップS2204:No)、ノードは、周辺のノードに、グループ作成依頼を送信する(ステップS2205)。
【0120】
自ノードがグループに所属する場合(ステップS2204:Yes)、ノードは、周辺のノードに、グループ除外依頼を送信する(ステップS2206)。自ノードが代表ノードである場合(ステップS2203:Yes)、ノードは、周辺のノードに、代表変更依頼を送信する(ステップS2207)。取得したデータと前回のデータとの差分が閾値A以上でない場合(ステップS2202:No)、または、ステップS2205〜ステップS2207のいずれかの処理終了後、ノードは、データ取得処理を終了する。データ取得処理を実行することにより、ノードは、グループの作成や、グループからの除外、グループ代表ノードであるときの変更の契機を検出することができる。
【0121】
図23は、グループ作成依頼受信処理手順の一例を示すフローチャートである。グループ作成依頼受信処理は、グループ作成依頼を受信したときに行われる処理である。グループ作成依頼受信処理は、グループ作成依頼を受信するノードにより実行され、グループ作成依頼は周辺のノードに送信されるため、実質、どのノードでも実行される可能性がある。
【0122】
ステップS2205の処理により、グループ作成依頼を受信した場合、ノードは、センサー202が検出したデータを取得する(ステップS2301)。次に、ノードは、取得したデータとグループ作成依頼のデータとの差分が閾値B以内か否かを判断する(ステップS2302)。取得したデータとグループ作成依頼のデータとの差分が閾値B以内である場合(ステップS2302:Yes)、ノードは、続けて、自ノードがグループに所属するか否かを判断する(ステップS2303)。
【0123】
自ノードがグループに所属しない場合(ステップS2303:No)、ノードは、グループ作成依頼を送信したノードに、グループ作成応答(新規)を送信する(ステップS2304)。続けて、ノードは、グループ作成依頼の送信元IDを、グループ代表ノードIDとして不揮発メモリ206に登録する(ステップS2305)。なお、ノードは、ステップS2305の処理を、ステップS2304の処理の前に実行してもよい。
【0124】
自ノードがグループに所属する場合(ステップS2303:Yes)、ノードは、グループ作成依頼を送信したノードに、グループ作成応答(追加)を送信する(ステップS2306)。続けて、ノードは、メンバー追加依頼を、グループ代表ノードに送信する(ステップS2307)。なお、ノードは、ステップS2307の処理を、ステップS2306の処理の前に実行してもよい。
【0125】
取得したデータとグループ作成依頼のデータとの差分が閾値B以内でない場合(ステップS2302:No)、ステップS2305の処理終了後、または、ステップS2307の処理終了後、ノードは、グループ作成依頼受信処理を終了する。グループ作成依頼受信処理を実行することにより、ノードは、センサー202の値が近くなったノードを同一グループに設定することができる。
【0126】
図24は、グループ除外依頼受信処理手順の一例を示すフローチャートである。グループ除外依頼受信処理は、グループ除外依頼を受信したときに行われる処理である。グループ除外依頼受信処理は、グループ除外依頼を受信するノードにより実行され、グループ除外依頼は、周辺のノードに送信されるため、実質、どのノードでも実行される可能性がある。
【0127】
ステップS2206の処理により、グループ除外依頼を受信した場合、ノードは、自ノードがグループに所属するか否かを判断する(ステップS2401)。自ノードがグループに所属する場合(ステップS2401:Yes)、ノードは、センサー202が検出したデータを取得する(ステップS2402)。次に、ノードは、取得したデータとグループ除外依頼のデータとの差分が閾値Bより大きいか否かを判断する(ステップS2403)。
【0128】
取得したデータとグループ除外依頼のデータとの差分が閾値Bより大きい場合(ステップS2403:Yes)、ノードは、グループ除外依頼の送信元ノードに、グループ除外応答を送信する(ステップS2404)。続けて、ノードは、代表ノードに、メンバー除外依頼を送信する(ステップS2405)。なお、ノードは、ステップS2405の処理を、ステップS2404の処理の前に実行してもよい。
【0129】
自ノードがグループに所属しない場合(ステップS2401:No)、取得したデータとグループ除外依頼のデータとの差分が閾値B以内である場合(ステップS2403:No)、または、ステップS2405の処理実行後、ノードは、グループ除外依頼受信処理を終了する。グループ除外依頼受信処理を実行することにより、センサー202のデータが離れたノードを同一グループから除外することができる。
【0130】
図25は、グループ作成応答(新規)受信処理手順の一例を示すフローチャートである。グループ作成応答(新規)受信処理は、グループ作成応答(新規)を受信したときに行われる処理である。グループ作成応答(新規)受信処理は、グループ作成依頼を送信したノードにより実行される。
【0131】
ステップS2304の処理により、グループ作成応答(新規)を受信した場合、ノードは、不揮発メモリ206のグループメンバーID一覧に、グループ作成応答(新規)の送信元IDを追加する(ステップS2501)。次に、ノードは、不揮発メモリ206のグループ代表ノードIDに、自ノードのIDを登録する(ステップS2502)。ステップS2502の実行終了後、ノードは、グループ作成応答(新規)受信処理を終了する。グループ作成応答(新規)受信処理を実行することにより、ノードは、センサー202のデータが近いセンサー202同士でグループを作成することができる。
【0132】
図26は、グループ作成応答(追加)受信処理手順の一例を示すフローチャートである。グループ作成応答(追加)受信処理は、グループ作成応答(追加)を受信したときに行われる処理である。グループ作成応答(追加)受信処理は、グループ作成依頼を送信したノードにより実行される。
【0133】
ステップS2306の処理により、グループ作成応答(追加)を受信した場合、ノードは、不揮発メモリ206のグループ代表ノードIDに、グループ作成応答(追加)のグループ代表ノードIDを登録する(ステップS2601)。ステップS2601の実行終了後、ノードは、グループ作成応答(追加)受信処理を終了する。グループ作成応答(追加)受信処理を実行することにより、ノードは、センサー202のデータが近いノード同士で作成されたグループに追加することができる。
【0134】
図27は、メンバー追加依頼受信処理手順の一例を示すフローチャートである。メンバー追加依頼受信処理は、メンバー追加依頼を受信したときに行われる処理である。メンバー追加依頼受信処理は、グループ代表ノードによって実行される。したがって、
図27の説明では、実行主体をグループ代表ノードとして説明する。
【0135】
ステップS2307の処理により、メンバー追加依頼を受信した場合、グループ代表ノードは、不揮発メモリ206のグループメンバーID一覧に、メンバー追加依頼の追加するノードのIDを登録する(ステップS2701)。ステップS2701の実行終了後、グループ代表ノードは、メンバー追加依頼受信処理を終了する。メンバー追加依頼受信処理を実行することにより、グループ代表ノードは、センサー202のデータが近いノードをグループに追加することができる。
【0136】
図28は、グループ除外応答受信処理手順の一例を示すフローチャートである。グループ除外応答受信処理は、グループ除外応答を受信したときに行われる処理である。グループ除外応答受信処理は、グループ除外依頼を送信したノードによって実行される。
【0137】
ステップS2404の処理により、グループ除外応答を受信した場合、ノードは、不揮発メモリ206から、代表ノードIDを取得する(ステップS2801)。次に、ノードは、受信したグループ除外応答の代表ノードIDと不揮発メモリ206の代表ノードIDが一致するか否かを判断する(ステップS2802)。
【0138】
グループ除外応答の代表ノードIDと不揮発メモリ206の代表ノードIDが一致する場合(ステップS2802:Yes)、ノードは、不揮発メモリ206の代表ノードIDを消去する(ステップS2803)。ステップS2803の実行終了後、または、グループ除外応答の代表ノードIDと不揮発メモリ206の代表ノードIDが一致しない場合(ステップS2802:No)、ノードは、グループ除外応答受信処理を終了する。グループ除外応答受信処理を実行することにより、ノードは、センサー202のデータが変化した場合に、グループから除外することができる。
【0139】
図29は、メンバー除外依頼受信処理手順の一例を示すフローチャートである。メンバー除外依頼受信処理は、メンバー除外依頼を受信したときに行われる処理である。メンバー除外依頼受信処理は、グループ代表ノードによって実行される。したがって、
図29の説明では、実行主体をグループ代表ノードとして説明する。
【0140】
ステップS2405の処理により、メンバー除外依頼を受信した場合、グループ代表ノードは、不揮発メモリ206のグループメンバーID一覧から、メンバー除外依頼の削除するノードのIDを削除する(ステップS2901)。ステップS2901の実行終了後、グループ代表ノードは、メンバー除外依頼受信処理を終了する。メンバー除外依頼受信処理を実行することにより、グループ代表ノードは、センサー202のデータが変化したノードを、グループから除外することができる。
【0141】
図30は、代表変更依頼受信処理手順の一例を示すフローチャートである。代表変更依頼受信処理は、代表変更依頼を受信したときに行われる処理である。代表変更依頼受信処理は、代表変更依頼を受信したノードによって実行され、代表変更依頼を送信するグループ代表ノードは、周辺のノードに代表変更依頼を送信するため、実質、どのノードでも実行される可能性がある。
【0142】
ステップS2207の処理により、代表変更依頼を受信したノードは、不揮発メモリ206から、グループ代表ノードIDを取得する(ステップS3001)。次に、ノードは、受信した代表変更依頼の送信元IDと不揮発メモリ206のグループ代表ノードIDが一致するか否かを判断する(ステップS3002)。受信した代表変更依頼の送信元IDと不揮発メモリ206のグループ代表ノードIDが一致する場合(ステップS3002:Yes)、ノードは、センサー202が検出したデータを取得する(ステップS3003)。次に、ノードは、取得したデータと代表変更依頼のデータとの差分が閾値Bより大きいか否かを判断する(ステップS3004)。取得したデータと代表変更依頼のデータとの差分が閾値Bより大きい場合(ステップS3004:Yes)、ノードは、代表変更依頼の送信元となる旧代表ノードに、代表変更応答を送信する(ステップS3005)。
【0143】
ステップS3005の実行終了後、代表変更依頼の送信元IDと不揮発メモリ206のグループ代表ノードIDが一致しない場合(ステップS3002:No)、または、取得したデータと代表変更依頼のデータとの差分が閾値B以内である場合(ステップS3004:No)、ノードは、代表変更依頼受信処理を終了する。代表変更依頼受信処理を実行することにより、グループ代表ノードのセンサー202のデータが変化した際に、新たなグループ代表ノードとなり得るノードが、グループ代表ノードとして通知することができる。
【0144】
図31は、代表変更応答受信処理手順の一例を示すフローチャートである。代表変更応答受信処理は、代表変更応答を受信したときに行われる処理である。代表変更応答受信処理は、代表変更依頼を送信した旧グループ代表ノードによって実行される。したがって、
図31の説明では、実行主体を旧グループ代表ノードとして説明する。
【0145】
ステップS3005の処理により、代表変更応答を受信した旧グループ代表ノードは、代表変更応答を初めて受信したか否かを判断する(ステップS3101)。代表変更応答を初めて受信した場合(ステップS3101:Yes)、旧グループ代表ノードは、代表変更応答の送信元に、グループメンバーID一覧信号を送信する(ステップS3102)。
【0146】
次に、旧グループ代表ノードは、不揮発メモリ206のグループメンバーID一覧を消去する(ステップS3103)。また、旧グループ代表ノードは、不揮発メモリ206のグループ代表ノードIDを消去する(ステップS3104)。なお、旧グループ代表ノードは、ステップS3104の処理を、ステップS3103の処理の前に実行してもよい。
【0147】
ステップS3104の実行終了後、または、2回目以降の代表変更応答を受信した場合(ステップS3101:No)、旧グループ代表ノードは、代表変更応答受信処理を終了する。代表変更応答受信処理を実行することにより、旧グループ代表ノードは、グループに所属するノードのIDを、新グループ代表ノードに引き継ぐことができる。
【0148】
図32は、グループメンバーID一覧信号受信処理手順の一例を示すフローチャートである。グループメンバーID一覧信号受信処理は、グループメンバーID一覧信号を受信したときに行われる処理である。グループメンバーID一覧信号受信処理は、グループメンバーID一覧信号を受信する新グループ代表ノードにより実行される。したがって、
図32の説明では、実行主体を新グループ代表ノードとして説明する。
【0149】
ステップS3102の処理により、グループメンバーID一覧信号を受信した新グループ代表ノードは、受信したグループメンバーID一覧信号のグループメンバーID一覧を、不揮発メモリ206のグループメンバーID一覧に登録する(ステップS3201)。次に、新グループ代表ノードは、不揮発メモリ206のグループ代表ノードIDに、自ノードのIDを登録する(ステップS3202)。続けて、新グループ代表ノードは、グループメンバーとなるノードに、代表更新依頼を送信する(ステップS3203)。ステップS3203の実行終了後、新グループ代表ノードは、グループメンバーID一覧信号受信処理を終了する。グループメンバーID一覧信号受信処理を実行することにより、新グループ代表ノードは、同一のグループに所属するノードに、新たにグループ代表ノードとなった新グループ代表ノードのIDを通知することができる。
【0150】
図33は、代表更新依頼受信処理手順の一例を示すフローチャートである。代表更新依頼受信処理は、代表更新依頼を受信したときに行われる処理である。代表更新依頼受信処理は、グループに所属するノードによって実行される。
【0151】
ステップS3203の処理により、代表更新依頼を受信したノードは、不揮発メモリ206から、グループ代表ノードIDを取得する(ステップS3301)。次に、ノードは、受信した代表更新依頼の旧代表ノードIDが不揮発メモリ206のグループ代表ノードIDと一致するか否かを判断する(ステップS3302)。受信した代表更新依頼の旧代表ノードIDが不揮発メモリ206のグループ代表ノードIDと一致した場合(ステップS3302:Yes)、ノードは、受信した代表更新依頼の新代表ノードIDを、不揮発メモリ206のグループ代表ノードIDに登録する(ステップS3303)。
【0152】
ステップS3303の実行終了後、または、受信した代表更新依頼の旧代表ノードIDが不揮発メモリ206のグループ代表ノードIDと一致しない場合(ステップS3302:No)、ノードは、代表更新依頼受信処理を終了する。代表更新依頼受信処理を実行することにより、グループに所属するノードは、新たにグループ代表ノードとなったIDをグループ代表ノードとして認識することができる。
【0153】
図34は、データ収集処理手順の一例を示すフローチャートである。データ収集処理は、システム100内のセンサー202のデータを収集する処理である。データ収集処理は、検査員端末101が行う処理と、ノードが行う処理とがある。検査員端末101が行う処理を、データ収集要求処理とする。一方、ノードが行う処理を、データ収集要求受信処理とする。
【0154】
検査員端末101は、データ収集要求を、各ノードに送信する(ステップS3401)。検査員端末101は、一定時間待機する(ステップS3402)。なお、無線通信回路311が、短距離無線が採用された通信回路であれば、検査員端末101は、データ収集要求をマルチホップ通信により各ノードに送信する。
【0155】
ノードは、データ収集要求を受信する(ステップS3403)。次に、ノードは、自ノードがグループ代表ノードか否かを判断する(ステップS3404)。自ノードがグループ代表ノードでない場合(ステップS3404:No)、ノードは、続けて、自ノードがグループに所属するか否かを判断する(ステップS3405)。自ノードがグループに所属する場合(ステップS3405:Yes)、ノードは、データ収集要求受信処理を終了する。
【0156】
自ノードがグループ代表ノードである場合(ステップS3404:Yes)、または、自ノードがグループに所属しない場合(ステップS3405:No)、ノードは、データ収集応答を周辺のノードに送信する(ステップS3406)。ステップS3406の実行終了後、ノードは、データ収集要求受信処理を終了する。データ収集応答を受信したノードは、データ収集応答を周辺のノードに転送する。
【0157】
検査員端末101は、データ収集応答を受信する(ステップS3407)。次に、検査員端末101は、所定量のデータを収集できたか否かを判断する(ステップS3408)。所定量のデータは、システム100の管理者等により指定される。たとえば、所定量のデータは、全データの80[%]である。所定量のデータを収集できた場合(ステップS3408:Yes)、検査員端末101は、正常終了を出力する(ステップS3409)。所定量のデータを収集できなかった場合(ステップS3408:No)、検査員端末101は、異常終了を出力する(ステップS3410)。ステップS3409の実行終了後、または、ステップS3410の実行終了後、検査員端末101は、データ収集要求処理を終了する。データ収集処理を実行することにより、検査員端末101は、センサー202のデータを収集することができる。
【0158】
以上説明したように、システム100は、第1のノードが有する第1のセンサー202から取得されるデータと、第2のノードが有する第2のセンサー202から取得されるデータとの内容が同等なら、第2のセンサー202から取得されるデータの送信を停める。これにより、システム100は、システム100全体のデータの通信量が減少し、データを送信する際に要求される充電する回数が減少するため、全データの収集にかかる時間を短くすることができる。
【0159】
また、システム100は、第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等ではないと判断した場合、第2のセンサー202から取得されるデータの送信を再開する。これにより、システム100は、内容が変化したデータを、検査員端末101に送信することができる。
【0160】
また、システム100は、第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等であると判断した場合、第1のノードと第2のノードとを同一のグループに設定する。そして、システム100は、第1のセンサー202から取得されるデータとともに、グループ内のノードのIDを送信してもよい。これにより、システム100は、システム100内で送信されるデータ量を削減するとともに、検査員端末101にノードのIDも併せて通知することができる。ノードのIDが付与されることにより、ノードのIDからノードの位置が特定できれば、データを解析するサーバは、データが応力であれば応力分布、データが温度であれば温度分布といった、位置情報を用いた解析を行うことができる。
【0161】
また、あるグループに第1のノードと第2のノードのみが存在するとする。このとき、システム100は、第2のセンサー202から取得されるデータの送信を再開させる場合、第2のノードをあるグループから除外し、第1のセンサー202から取得されるデータとともに、第1のノードのIDを送信してもよい。これにより、システム100は、内容が変化した第2のノードのデータと該当のデータを取得したノードのIDとを、検査員端末101に送信することができる。また、システム100は、第1のセンサー202から取得されるデータとともに、第1のノードのIDを送信することにより、あるグループが解消されたことを検査員端末101に通知することができる。
【0162】
また、あるグループに第1のノードと複数の第2のノードが存在するとする。このとき、システム100は、第1のセンサー202から取得されるデータの内容が変化したと判断された場合、第1のノードをグループから除外する。そして、システム100は、グループ内の複数の第2のノードのいずれかにより、複数の第2のノードのセンサー202から取得されるデータとともに、グループ内のノードの識別情報を送信してもよい。これにより、システム100は、グループ代表ノードのデータが変化しても、グループを維持でき、通信量を削減することができる。
【0163】
また、第1のノードと第2のノードは、直接通信可能、または、所定のホップ数にて通信可能であってもよい。これにより、システム100は、グループを作成することにかかる通信量を抑えつつ、システム100内の通信量を削減することができる。また、センサー202から取得されるデータは距離が近ければ似たような値になりやすい。したがって、システム100は周辺のノードを対象にグループ化できるか否かを探索することにより、システム100は、遠方のノードまで問い合わせなくとも、グループを作成できる可能性が高い。
【0164】
また、第1のノードが第1のセンサー202から取得されるデータを送信する。そして、第2のノードは、第1のセンサー202から取得されるデータを受信した場合に、第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等であるか否かを判断する。そして、第1のセンサー202から取得されるデータと第2のセンサー202から取得されるデータとの内容が同等であると判断した場合、第2のノードは、第2のセンサー202から取得されるデータの送信を停めてもよい。これにより、判断結果を他のノードに送信しなくともよく、さらに、自ノードの送信を停めればよいため、通信回数を少なくして、システム100にかかる通信量を削減することができる。
【0165】
なお、本実施の形態で説明したデータ収集方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ収集プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本データ収集プログラムは、インターネット等のネットワークを介して配布してもよい。
【0166】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0167】
(付記1)複数の通信装置の各々の通信装置がマルチホップ通信によりデータを送受信するシステムのデータ収集方法において、
前記複数の通信装置のいずれかが、
前記複数の通信装置のうちの第1の通信装置が有する第1のセンサーから取得されるデータと、前記複数の通信装置のうちの第2の通信装置が有する第2のセンサーから取得されるデータとの内容が同等である場合、前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を停める、
処理を実行することを特徴とするデータ収集方法。
【0168】
(付記2)前記複数の通信装置のいずれかが、
前記第2のセンサーから取得されるデータの送信を停めた後に、前記第1のセンサーから取得されるデータと前記第2のセンサーから取得されるデータとの内容が同等ではなくなった場合、前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を再開する、
処理を実行することを特徴とする付記1に記載のデータ収集方法。
【0169】
(付記3)前記複数の通信装置のいずれかが、
前記第1のセンサーから取得されるデータと前記第2のセンサーから取得されるデータとの内容が同等である場合、前記第1の通信装置と前記第2の通信装置とを同一のグループに設定し、
前記第1の通信装置が、
前記複数の通信装置のいずれかが前記第1の通信装置と前記第2の通信装置とを同一のグループに設定した場合、前記第1のセンサーから取得されるデータとともに、前記第1および第2の通信装置が同一のグループであることを示す識別情報を送信する、
処理を実行することを特徴とする付記2に記載のデータ収集方法。
【0170】
(付記4)前記複数の通信装置のいずれかが、
前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を再開する場合、前記第2の通信装置を前記グループから除外し、
前記第1の通信装置が、
前記複数の通信装置のいずれかが前記第2の通信装置を前記グループから除外した場合、前記第1のセンサーから取得されるデータとともに、前記第1の通信装置の識別情報を送信する、
処理を実行することを特徴とする付記3に記載のデータ収集方法。
【0171】
(付記5)前記複数の通信装置のいずれかが、
前記第1の通信装置と前記第2の通信装置とを同一のグループに設定した後に、前記第1のセンサーから取得されるデータの内容が変化した場合、前記第1の通信装置を前記グループから除外し、
前記第1の通信装置が、
前記複数の通信装置のいずれかが前記第1の通信装置を前記グループから除外した場合、前記第1のセンサーから取得されるデータとともに、前記第1の通信装置の識別情報を送信する、
処理を実行することを特徴とする付記3または4に記載のデータ収集方法。
【0172】
(付記6)前記複数の通信装置のいずれかが、
前記第1の通信装置と同一のグループに設定した第2の通信装置が複数存在する時に、前記第1のセンサーから取得されるデータの内容が変化した場合、前記第1の通信装置を前記グループから除外し、
複数の第2の通信装置のいずれかが、
前記複数の通信装置のいずれかが前記第1の通信装置を前記グループから除外した場合、前記複数の第2の通信装置のいずれかのセンサーから取得されるデータとともに、前記複数の第2の通信装置が同一のグループであることを示す識別情報を送信する、
処理を実行することを特徴とする付記5に記載のデータ収集方法。
【0173】
(付記7)前記停める処理は、
前記第1の通信装置が有する第1のセンサーから取得されるデータと、前記複数の通信装置のうちの前記第1の通信装置と直接通信可能な第2の通信装置が有する第2のセンサーから取得されるデータとの内容が同等である場合、前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を停めることを特徴とする付記1〜6のいずれか一つに記載のデータ収集方法。
【0174】
(付記8)前記第1の通信装置が、
前記第1のセンサーから取得されるデータを送信し、
前記第2の通信装置が、
前記第1のセンサーから取得されるデータを受信した場合、前記第1のセンサーから取得されるデータと、前記第2のセンサーから取得されるデータとの内容が同等であるか否かを判断し、
前記第1のセンサーから取得されるデータと前記第2のセンサーから取得されるデータとの内容が同等であると判断した場合、前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を停める、
処理を実行することを特徴とする付記1〜7のいずれか一つに記載のデータ収集方法。
【0175】
(付記9)複数の通信装置の各々の通信装置がマルチホップ通信によりデータを送受信するシステムにおいて、
前記複数の通信装置のうちの第1の通信装置が有する第1のセンサーから取得されるデータと、前記複数の通信装置のうちの第2の通信装置が有する第2のセンサーから取得されるデータとの内容が同等であるか否かを判断する判断部と、
前記判断部によって前記第1のセンサーから取得されるデータと前記第2のセンサーから取得されるデータとの内容が同等であると判断された場合、前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を停める制御部と、
を有することを特徴とするシステム。
【0176】
(付記10)複数の通信装置の各々の通信装置がマルチホップ通信によりデータを送受信するシステムのデータ収集プログラムにおいて、
前記複数の通信装置のいずれかに、
前記複数の通信装置のうちの第1の通信装置が有する第1のセンサーから取得されるデータと、前記複数の通信装置のうちの第2の通信装置が有する第2のセンサーから取得されるデータとの内容が同等である場合、前記第2の通信装置による前記第2のセンサーから取得されるデータの送信を停める、
処理を実行させることを特徴とするデータ収集プログラム。