本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線通信システムの概略図である。図1を参照して、この発明の実施の形態による無線通信システム100は、端末装置1〜10と、無線基地局20,30,40と、ネットワーク50と、サーバ60とを備える。
端末装置1〜10および無線基地局20,30,40は、無線通信空間に配置される。
端末装置1〜10の各々は、例えば、スマートフォン、携帯電話、ウェアラブルデバイスおよび一定の位置に固定された通信機器等からなり、自己に搭載されたセンサーを用いてセンサーデータを検出する参加型センシングを行う端末装置である。
端末装置1〜10の各々は、人によって移動してもよく、例えば、バスまたは自家用車等の車両に設置されて移動してもよい。
そして、端末装置1〜10のユーザは、ボランティアによって端末装置1〜10を無線通信システム100に参加させてもよいし、何らかの報酬を受け取って端末装置1〜10を無線通信システム100に参加させてもよい。
このようにすることによって、環境に対して、固定のセンサーを設置してセンシングを行う場合に比べ、センサーの設置または運用によるコストを削減でき、また人の移動に伴い広範囲にセンサーデータをセンシングできる。
また、端末装置1〜10の各々は、近距離無線通信システムを用いて無線通信を行う機能と、近距離無線通信システムと異なる無線通信システム(この発明の実施の形態においては、「サーバ用無線通信システム」と言う。)を用いて無線基地局(無線基地局20,30,40のいずれか)を介してサーバ60へセンサーデータを送信する機能とを有する。
近距離無線通信システムは、例えば、Bluetooth(登録商標) LE(Low Energy)、およびWiFi Direct等である。但し、近距離無線通信システムは、これらに限定されず、端末装置1〜10間で無線通信可能な無線通信システムであれば、どのような無線通信システムであってもよい。
サーバ用無線通信システムは、一般的には、ネットワーク50を介して端末装置1〜10とサーバ60との間で無線通信可能な無線通信システムである。そして、サーバ用無線通信システムは、例えば、LTE、およびW−CDMA(Wideband Code Division Multiple Access)等である。但し、サーバ用無線通信システムは、これらに限定されず、ネットワーク50を介して端末装置1〜10とサーバ60との間で無線通信可能な無線通信システムであれば、どのような無線通信システムであってもよい。
端末装置1〜10の各々は、ランクRkが割り当てられる。従って、端末装置1〜10の各々は、ランクRkを保持する。
端末装置1〜10の各々は、近距離無線通信システムを用いて、自己のアドレスおよびランクRkを含むHelloパケットを定期的にブロードキャストする。
端末装置1〜10の各々は、例えば、気温、湿度、気圧、CO2、PM2.5、照度、紫外線強度、騒音、および無線周波数等を検出し、その検出した気温および湿度等をセンサーデータとして保持する。
端末装置1〜10の各々は、センサーデータを検出したときの位置および時刻を検出し、その検出した位置を示す位置情報と、その検出した時刻を示す時間情報とをセンサーデータに対応付けて保持する。
そして、端末装置1〜10の各々は、後述する方法によって、センサーデータの信頼度に基づいて、検出したセンサーデータの一部、位置情報および時間情報をサーバ用無線通信システムを用いてサーバ60へ送信する。
また、端末装置1〜10の各々は、他の端末装置からHelloパケットを受信し、その受信したHelloパケットに含まれるアドレスを検出することにより、他の端末装置を検知する。そして、端末装置1〜10の各々は、他の端末装置を検知すると、後述する方法によって、自己が検出したセンサーデータ、位置情報および時間情報を近距離無線通信システムを用いて他の端末装置へ送信し、または他の端末装置で検出されたセンサーデータ、位置情報および時間情報を近距離無線通信システムを用いて他の端末装置から受信する。
後述する端末間通信によって、他の端末装置からセンサーデータ等を受信した端末装置は、自己が検出したセンサーデータと他の端末装置から受信したセンサーデータとが集約可能であるか否かを判定する。
そして、センサーデータの集約が可能であると判定したとき、他の端末装置からセンサーデータ等を受信した端末装置は、複数のセンサーデータを後述する方法によって集約する。
端末装置1〜10の各々は、複数のセンサーデータを集約すると、その集約したセンサーデータ、位置情報および時間情報をサーバ用無線通信システムを用いてサーバ60へ送信する。
無線基地局20,30,40の各々は、ネットワーク50に接続される。無線基地局20,30,40は、相互に同じサーバ用無線通信システムによって無線通信を行ってもよく、相互に異なるサーバ用無線通信システムによって無線通信を行ってもよい。
無線基地局20,30,40の各々は、サーバ用無線通信システムを用いて、端末装置(端末装置1〜10の少なくとも1つ)からセンサーデータ、位置情報および時間情報を受信し、その受信したセンサーデータ、位置情報および時間情報をネットワーク50を介してサーバ60へ送信する。
サーバ60は、ネットワークを介して、センサーデータ、位置情報および時間情報を無線基地局(無線基地局20,30,40の少なくとも1つ)から受信し、その受信したセンサーデータ、位置情報および時間情報を保持する。
図2は、図1に示す端末装置1の概略図である。図2を参照して、端末装置1は、アンテナ11,12と、通信部13と、制御部14と、センサー15と、GPS(Global Positioning System)16と、ストレージ部17とを含む。
通信部13は、アンテナ11を介してHelloパケットを他の端末装置から受信し、その受信したHelloパケットを制御部14へ出力する。
通信部13は、端末装置1のアドレスおよびランクRkを含むHelloパケットを制御部14から受け、その受けたHelloパケットを近距離無線通信システムを用いてアンテナ11を介してブロードキャストする。
通信部13は、センサーデータ等を含むパケットPKT_1を制御部14から受け、その受けたパケットPKT_1を近距離無線通信システムを用いてアンテナ11を介して送信先の端末装置へ送信する。
通信部13は、近距離無線通信システムを用いてアンテナ11を介してパケットPKT_1を他の端末装置から受信し、その受信したパケットPKT_1を制御部14へ出力する。
通信部13は、集約したセンサーデータを含むパケットPKT_2を制御部14から受け、その受けたパケットPKT_2をサーバ用無線通信システムを用いてアンテナ12を介してサーバ60へ送信する。
制御部14は、タイマーを内蔵する。制御部14は、端末装置1のアドレス、および端末装置1に割り当てられたランクRkを保持する。
制御部14は、センサーデータを検出するタイミングになると、センサーデータを検出するようにセンサー15を制御するとともに、位置を検出するようにGPS16を制御する。
制御部14は、センサー15からセンサーデータを受け、GPSから端末装置1の位置を示す位置情報を受けると、センサーデータおよび位置情報を受けたときの時刻を検出する。そして、制御部14は、センサーデータ、位置情報、および時刻を示す時間情報を相互に対応付けてストレージ部17に格納する。
制御部14は、通信部13からHelloパケットを受け、その受けたHelloパケットからアドレスおよびランクRkを検出する。そして、制御部14は、その検出したアドレスに基づいて、近距離無線通信システムを用いて端末装置1と無線通信可能な他の端末装置を検知する。これにより、制御部14は、端末装置1と遭遇した他の端末装置を検知する。
また、制御部14は、その検出したランクRkに基づいて、端末装置1で検出されたセンサーデータを他の端末装置へ送信すべきか否かを判定する。より具体的には、制御部14は、Helloパケットから検出したランクRkが、端末装置1のランクRkよりも大きいとき、端末装置1で検出したセンサーデータを他の端末装置へ送信すべきと判定する。一方、Helloパケットから検出したランクRkが、端末装置1のランクRk以下であるとき、制御部14は、端末装置1で検出したセンサーデータを他の端末装置へ送信すべきでないと判定する。
制御部14は、端末装置1で検出したセンサーデータを他の端末装置へ送信すべきと判定したとき、端末装置1のアドレスと、センサーデータ、位置情報および時間情報とを相互に対応付けたデータを生成するとともに、その生成したデータと送信先の端末装置のアドレスとを含むパケットPKT_1を生成し、その生成したパケットPKT_1を通信部13へ出力する。
制御部14は、後述する方法によって、センサーデータをサーバ60へ送信すべきか否かを判定し、センサーデータをサーバ60へ送信すべきであると判定したとき、端末装置1で検出したセンサーデータおよび/または他の端末装置から受信したセンサーデータを後述する方法によって集約する。そして、制御部14は、その集約したセンサーデータを含むパケットPKT_2を生成し、その生成したパケットPKT_2を通信部13へ出力する。
センサー15は、制御部14からの制御に従ってセンサーデータを検出し、その検出したセンサーデータを制御部14へ出力する。
GPS16は、制御部14からの制御に従って端末装置1の位置を検出し、その検出した位置を示す位置情報を制御部14へ出力する。
ストレージ部17は、センサーデータ、位置情報および時間情報を相互に対応付けて記憶する。
なお、図1に示す端末装置2〜10の各々も、図2に示す端末装置1と同じ構成からなる。
図3は、図1に示すサーバ60の概略図である。図3を参照して、サーバ60は、通信部61と、制御部62と、ストレージ部63とを含む。
通信部61は、無線基地局(無線基地局20,30,40の少なくとも1つ)およびネットワーク50を介して、端末装置1〜10で検出されたセンサーデータおよび/または集約されたセンサーデータ(集約センサーデータ)を受信し、その受信したセンサーデータおよび/または集約センサーデータを制御部62へ出力する。
制御部62は、通信部61からセンサーデータおよび/または集約センサーデータを受け、その受けたセンサーデータおよび/または集約センサーデータをストレージ部63に格納する。
ストレージ部63は、制御部62から受けたセンサーデータおよび/または集約センサーデータを記憶する。
図4は、センサーデータの保存形式を示す概念図である。図4を参照して、センサーデータ名N_ri(iは、正の整数)、時間情報time(ri)、位置情報pos(ri)およびセンサーデータriは、相互に対応付けられる。
時間情報time(ri)は、YYYY/MM/DD/HH/SSの形式によって表される。YYYYは、年を表し、MMは、月を表し、DDは、日を表し、HHは、時間を表し、SSは、分を表す。
また、位置情報pos(ri)は、経度および緯度によって表される。
なお、センサーデータの形式は、何であってもよい。例えば、センサーデータは、温度のような単一のデータであってもよく、周波数帯ごとの信号強度のような表形式のデータであってもよい。
図5は、セルの概念図である。図5を参照して、センサーデータの検出対象となる空間全体(例えば、日本国の領域全体)を格子状に分割し、複数のセルc1,c2,・・・,cL(Lは、2以上の整数)を規定する。
複数のセルc1,c2,・・・,cLの各々は、例えば、矩形からなる。そして、各セルc1,c2,・・・,cLの重心の位置を、そのセルの「代表位置」と言う。
図6は、タイムスロットの概念図である。図6を参照して、時間を一定間隔Tparで分割したタイムスロットt0,t1,・・・を規定する。一定間隔Tparは、例えば、100秒または5分である。そして、各タイムスロットt0,t1,・・・の中点の時刻を、そのタイムスロットの「代表時刻」と言う。
この発明の実施の形態においては、あるセルciと、あるタイムスロットtj(jは正の整数)との組(ci,tj)を「時空間ブロック」(または単に「ブロック」)と言う。
そして、センサーデータrkが、セルciに対してpos(rk)∈ciであり、かつ、タイムスロットtjに対してtime(rk)∈tjであるとき、ブロック(ci,tj)を「rkが属するブロック」と呼び、blk(rk)と表記する。即ち、センサーデータrkの位置情報pos(rk)がセルciに含まれ、かつ、センサーデータrkの時間情報time(rk)がタイムスロットtjに含まれるとき、ブロック(ci,tj)を「rkが属するブロックblk(rk)」と呼ぶ。
[センサーデータの信頼度]
センサーデータの信頼度について説明する。センサーデータriについて、ブロックbjにおける信頼度を与える関数を「信頼度関数」と言い、rel(ri,bj)と表記する。
図7は、センサーデータの信頼度関数を説明するための図である。図7を参照して、1つ1つの立方体は、ブロックを表す。信頼度関数は、センサーデータrkが属するブロックblk(rk)で値が最も大きくなり、ブロックblk(rk)から離れたブロックほど、”0”に近づく。そして、信頼度関数によって決定される信頼度は、0以上1以下の実数値からなる。
図7においては、色の濃いブロックほど、信頼度が高いことを表し、色の薄いブロックほど、信頼度が低いことを表す。
図7において、各ブロックは、セルciとタイムスロットtjとによって規定される(即ち、(ci,tj)によって規定される)ので、x−y平面に配置されるブロックは、セルciが異なるブロックであり、時間方向に配置されるブロックは、タイムスロットtjが異なるブロックである。
従って、同じセルciを有するブロックblk(ri)に対して、タイムスロットtjが異なるブロック(ci,tj−1)、(ci,tj)、(ci,tj+1)、・・・が規定される。
図8は、信頼度関数の例を示す図である。図8を参照して、信頼度関数rel(ri,bj)は、d=0のとき、”1”になり、dが大きくなるに従って値が直線的に小さくなる。そして、信頼度関数rel(ri,bj)は、d≧cのとき、”0”となる。ここで、cは、パラメータである。
このように、信頼度関数rel(ri,bj)は、dが0≦d<cの範囲において、dが大きくなるに従って値が直線的に低下し、dがc以上になると、値が”0”になる。
そして、この発明の実施の形態においては、空間についての信頼度関数relspace(ri,bj)と、時間についての信頼度関数reltime(ri,bj)とを規定する。なお、この発明の実施の形態においては、信頼度関数relspace(ri,bj)によって決定される信頼度を「位置信頼度」と言い、信頼度関数reltime(ri,bj)によって決定される信頼度を「時間信頼度」と言う。
信頼度関数relspace(ri,bj)は、次式によって表される。
式(1)において、c1は、パラメータであり、d1は、センサーデータriの位置pos(ri)と、ブロックbj(=(ci,tj))のセルciの代表位置とのユークリッド距離を表す。
信頼度関数relspace(ri,bj)は、ユークリッド距離d1=0のとき、値が”1”となり、ユークリッド距離d1が長くなるに従って、値が直線的に小さくなる。そして、信頼度関数relspace(ri,bj)は、ユークリッド距離d1がc1以上になると、”0”になる。
ユークリッド距離d1=0であることは、センサーデータriが検出された位置と、センサーデータriが属するブロックbjの代表位置とが等しいことを表すので、信頼度関数relspace(ri,bj)は、値が最も大きくなる(即ち、値が”1”になる)。
また、信頼度関数reltime(ri,bj)は、次式によって表される。
式(2)において、c2は、パラメータであり、d2は、センサーデータriが検出された時間と、センサーデータriが属するブロックbj(=(ci,tj))のタイムスロットtjの代表時刻との差の絶対値を表す。
信頼度関数reltime(ri,bj)は、絶対値d2=0のとき、”1”となり、絶対値d2が長くなるに従って、値が直線的に小さくなる。そして、信頼度関数relspace(ri,bj)は、絶対値d2がc2以上になると、”0”になる。
絶対値d2=0であることは、センサーデータriが検出された時間と、センサーデータriが属するブロックbj(=(ci,tj))のタイムスロットtjの代表時刻とが等しいことを表すので、信頼度関数reltime(ri,bj)は、値が最も大きくなる(即ち、値が”1”になる)。
そして、信頼度関数rel(ri,bj)は、次式によって表される。
式(3)において、αは、重み付け係数であり、0≦α≦1を満たす実数である。
このように、信頼度関数rel(ri,bj)は、信頼度関数relspace(ri,bj)と、信頼度関数reltime(ri,bj)との重み付け和によって表される。
その結果、時間についての信頼度よりも空間についての信頼度を重み付けする場合は、αを0.5よりも大きい値に設定し、空間についての信頼度よりも時間についての信頼度を重み付けする場合は、αを0.5よりも小さい値に設定し、空間についての信頼度および時間についての信頼度を同等に重み付けする場合は、αを0.5に設定する。
また、パラメータc1,c2は、センサーデータriの種類に応じて変えてもよい。
なお、上記においては、信頼度関数relspace(ri,bj)は、ユークリッド距離d1が大きくなるに従って値が直線的に小さくなり、信頼度関数reltime(ri,bj)は、絶対値d2が大きくなるに従って値が直線的に小さくなると説明したが、この発明の実施の形態においては、これに限らず、信頼度関数relspace(ri,bj)は、ユークリッド距離d1が大きくなるに従って値が小さくなるものであれば、どのような関数であってもよく、信頼度関数reltime(ri,bj)は、絶対値d2が大きくなるに従って値が小さくなるものであれば、どのような関数であってもよい。
図9は、センサーデータの有効範囲を詳細に説明するための図である。図9を参照して、端末装置(端末装置1〜10のいずれか)が、自己が存在するセルc0でセンサーデータriを検出すると、円CIR内に存在する各セル(セルc0以外のセル)において、riが一定の信頼度で各セル(セルc0以外のセル)でのセンサーデータの値の推定値を与えるものとみなす。
そして、セルc0で検出されたセンサーデータriの位置および時間がそれぞれ位置情報pos(ri)および時間情報time(ri)によって表されるとき、円CIR内のセルc0以外のセルにおいて推定されたセンサーデータriの位置および時間も、それぞれ、位置情報pos(ri)および時間情報time(ri)によって表されると推定される。円CIRの領域は、信頼度が”0”よりも大きい領域である。従って、円CIRは、上述したc1を半径とする円である。
図9においては、x−y平面におけるセルを表しているが、セルは、時間方向にも広がっているので、実際には、信頼度が”0”よりも大きい範囲からなる球体内の各セルにおけるセンサーデータriがサーバ60へのアップロードの候補となる。
図10は、センサーデータriが存在するブロックを示す図である。なお、図10は、ある端末装置において、同じタイムスロットにおいて検出されたセンサーデータr0〜r5が存在するブロックを示す。
図10を参照して、センサーデータr0〜r5は、それぞれ、ブロックblk(r0)〜blk(r5)に属している。
図11および図12は、センサーデータが属するブロックの信頼度を示す図である。なお、図11の(a)は、図10に示すブロックblk(r0)に属するセンサーデータr0に関する信頼度を計算するための図を示し、図11の(b)は、図10に示すブロックblk(r2)に属するセンサーデータr2に関する信頼度を計算するための図を示し、図11の(c)は、図10に示すブロックblk(r4)に属するセンサーデータr4に関する信頼度を計算するための図を示す。そして、図11においては、簡単のために、時間方向で隣接するブロックの信頼度を”0”と見做している。
簡単のために、信頼度の計算を次のように行うものとする。
(1)センサーデータが属するブロックの信頼度を”1”とする。
(2)センサーデータが属するブロックを中心として上下左右でセルが隣接するブロックの信頼度を”0.5”とする。
(3)上記以外のブロックの信頼度を”0”とする。
その結果、ブロックblk(r0)に属するセンサーデータr0に関する信頼度の計算結果は、図11の(a)に示すようになる。また、ブロックblk(r2)に属するセンサーデータr2に関する信頼度の計算結果は、図11の(b)に示すようになる。更に、ブロックblk(r4)に属するセンサーデータr4に関する信頼度の計算結果は、図11の(c)に示すようになる。
図12の(a)は、図10に示すブロックblk(r3)に属するセンサーデータr3に関する信頼度を計算するための図を示し、図12の(b)は、図10に示すブロックblk(r1)に属するセンサーデータr1に関する信頼度を計算するための図を示し、図12の(c)は、図10に示すブロックblk(r5)に属するセンサーデータr5に関する信頼度を計算するための図を示す。
上記(1)〜(3)に従って信頼度を計算すると、ブロックblk(r3)に属するセンサーデータr3に関する信頼度の計算結果は、図12の(a)に示すようになる。また、ブロックblk(r1)に属するセンサーデータr1に関する信頼度の計算結果は、図12の(b)に示すようになる。更に、ブロックblk(r5)に属するセンサーデータr5に関する信頼度の計算結果は、図12の(c)に示すようになる。
図13は、信頼度の計算結果を集計した集計結果を示す図である。図13を参照して、ブロックblk(r0)に属するセンサーデータr0の信頼度は、図11の(a)〜(c)および図12の(a)〜(c)に示すブロックblk(r0)に記載された信頼度の値を合計すると、1+0.5+0.5+0+0+0=2.0となる。
同様にして、全てのブロックに属するセンサーデータの信頼度の値を合計すると、図13に示すようになる。
ここで、集約処理候補ブロック集合をBとし、ブロックbjの集約対象センサーデータ集合をD(bj)とし、ブロックbjの信頼度をR(bj)とし、信頼度のしきい値をRthreshとし、最大アップロードデータ数をUmaxとする。
集約処理候補ブロック集合Bは、集約処理を行う候補となるブロックの集合である。集約対象センサーデータ集合D(bj)は、ブロックbjについての集約処理を行うためのセンサーデータの集合である。信頼度R(bj)は、ブロックbjの集約後のセンサーデータをサーバ60へアップロードするか否かを決定するための数値である。しきい値Rthreshは、ブロックbjの信頼度R(bj)がしきい値Rthresh以上であれば、ブロックbjの集約後のセンサーデータをサーバ60へアップロードすることを決定するための基準値である。最大アップロードデータ数Umaxは、各端末装置1〜10がセンサーデータriをサーバ60へアップロードする際に、超えてはならないセンサーデータ数である。
図13に示すように、各ブロックに属するセンサーデータriの信頼度の合計値(即ち、ブロックの信頼度R(bj))を求めると、しきい値Rthresh以上の信頼度R(bj)を有するブロックの集約後のセンサーデータriをサーバ60へアップロードすると決定する。
しきい値Rthreshを、例えば、2.0とすると、図13に示す場合、ブロックblk(r0),blk(r2),blk(r3),blk(r4)の集約後のセンサーデータをサーバ60へアップロードすると決定する。
ブロックblk(r0)の信頼度R(blk(r0))(=2.0)は、センサーデータr0に基づく信頼度(=1)と、センサーデータr2に基づく信頼度(=0.5)と、センサーデータr4に基づく信頼度(=0.5)との合計値であるので、集約対象センサーデータ集合D(blk(r0))は、D(blk(r0))={r0,r2,r4}となる。
また、ブロックblk(r2)の信頼度R(blk(r2))(=2.0)は、センサーデータr2に基づく信頼度(=1)と、センサーデータr0に基づく信頼度(=0.5)と、センサーデータr3に基づく信頼度(=0.5)との合計値であるので、集約対象センサーデータ集合D(blk(r2))は、D(blk(r2))={r0,r2,r3}となる。
更に、ブロックblk(r3)の信頼度R(blk(r3))(=2.5)は、センサーデータr3に基づく信頼度(=1)と、センサーデータr2に基づく信頼度(=0.5)と、センサーデータr4に基づく信頼度(=0.5)と、センサーデータr1に基づく信頼度(=0.5)との合計値であるので、集約対象センサーデータ集合D(blk(r3))は、D(blk(r3))={r1,r2,r3,r4}となる。
更に、ブロックblk(r4)の信頼度R(blk(r4))(=2.5)は、センサーデータr4に基づく信頼度(=1)と、センサーデータr0に基づく信頼度(=0.5)と、センサーデータr3に基づく信頼度(=0.5)と、センサーデータr5に基づく信頼度(=0.5)との合計値であるので、集約対象センサーデータ集合D(blk(r4))は、D(blk(r3))={r0,r3,r4,r5}となる。
センサーデータの集約について説明する。センサーデータを集約する集約処理には、2つの方式がある。
(方式1)
方式1は、信頼度がしきい値Rthresh以上であれば、必ず、センサーデータriを収集したいという場合に使用される。
(方式2)
方式2は、信頼度ができるだけ高いセンサーデータriを収集したいが、サーバ60へアップロードされるセンサーデータriの数は、最大アップロードデータ数Umax以下に抑えたいという場合に使用される。
そして、方式1,2のうち、いずれを用いるかは、システムの運用者が決定する。
図14は、センサーデータriの集約方法の例を示す図である。図14を参照して、最大値を取ることによって2つのセンサーデータr1,r2を集約する場合、集約後の集約センサーデータは、タイムスロットtjと、セルcjと、33.1の値とからなる。
これによって、2つのセンサーデータr1,r2は、1つのセンサーデータに集約される。
なお、センサーデータriを集約する方法は、最大値を取ることに限らず、最小値を取ること、平均値を取ること、および中央値を取ること等であってもよい。
上述したように、集約対象センサーデータ集合D(blk(r0))={r0,r2,r4}、集約対象センサーデータ集合D(blk(r2))={r0,r2,r3}、集約対象センサーデータ集合D(blk(r3))={r1,r2,r3,r4}および集約対象センサーデータ集合D(blk(r4))={r0,r3,r4,r5}を求めると、集約対象センサーデータ集合D(blk(r0)),D(blk(r2)),D(blk(r3)),D(blk(r4))の各々に含まれる複数のセンサーデータriを、上述した集約方法によって集約する。そして、集約した集約センサーデータriをサーバ60へアップロードする。
端末装置1〜10の各々は、上述した方法によって、各センサーデータriの信頼度に基づいてブロックbjの信頼度R(bj)を求め、しきい値Rthresh以上の信頼度R(bj)を有するブロックのセンサーデータ集合D(bj)を集約してサーバ60へアップロードする。
なお、上記においては、同じタイムスロットtjの異なるセルciにおいて検出されたセンサーデータriの信頼度に基づいてブロックbjの信頼度R(bj)を求め、しきい値Rthresh以上の信頼度R(bj)を有するブロックのセンサーデータ集合D(bj)を集約してサーバ60へアップロードする場合について説明したが、実際には、異なるセルおよび/または異なるタイムスロットにおいて検出された各センサーデータriの信頼度に基づいてブロックbjの信頼度R(bj)を求め、その求めた信頼度R(bj)がしきい値Rthresh以上であれば、集約対象センサーデータ集合Dに含まれる複数のセンサーデータを上述した方法によって集約し、その集約したセンサーデータriをサーバ60へアップロードする。
なお、上記においては、ブロックbjの信頼度は、上記(1)〜(3)に従って決定されると説明したが、実際には、式(1)〜式(3)によって決定される。この場合、斜め方向に隣接するブロック間でも、センサーデータriに基づいて式(1)〜式(3)によって信頼度を決定してもよい。
また、上記においては、信頼度R(bj)がしきい値Rthresh以上であるブロックbjの集約対象センサーデータ集合D(bj)に含まれるセンサーデータriが複数である場合、端末装置1〜10の各々は、複数のセンサーデータriを集約してサーバ60へアップロードすることを説明したが、信頼度R(bj)がしきい値Rthresh以上であるブロックbjの集約対象センサーデータ集合D(bj)に含まれるセンサーデータriが1個である場合、端末装置1〜10の各々は、センサーデータriを集約せずにサーバ60へアップロードする。
[端末間通信]
図15は、端末間通信の種類を示す図である。この発明の実施の形態においては、2つの端末装置が相互に相手のアドレスを検知し、2つの端末装置が近距離無線通信システムを用いて相互に自己のセンサーデータを相手方の端末装置へ送受信することを「端末間通信」と言う。
図15の(a)を参照して、端末装置p,qは、相互に無線通信を直接行い、相手の端末装置を検知する。そして、端末装置p,qは、センサーデータを相互に直接送受信する。
図15の(b)を参照して、端末装置p,qは、無線基地局APを介して相互に相手の端末装置を検知する。そして、端末装置p,qは、無線基地局APを介さずに、センサーデータを相互に直接送受信する。
図15の(c)を参照して、端末装置p,qは、無線基地局APを介して相互に相手の端末装置を検知する。そして、端末装置p,qは、無線基地局APを介して、センサーデータを相互に送受信する。即ち、端末装置p,qは、無線基地局APを介して、相互に相手の端末装置を検知するとともにセンサーデータを相互に送受信する。
このように、この発明の実施の形態における「端末間通信」は、図15に示す3つの方式を含む。
[ランクの割当]
次に、ランクRkの割当方法について説明する。
端末装置の無線インターフェースの物理アドレス(例えば、MACアドレス)を整数値に変換してランクRkとする。例えば、“12:34:56:78:9a:bc”を“20015998343868”に変換し、“20015998343868”をランクRkとして端末装置に割り当てる。
ランクRkの割当方法は、この割当方法以外であってもよく、一般的には、端末装置1〜10に割り当てられたランクRkを相互に識別できるように割り当てる方法であれば、どのような割当方法であってもよい。
なお、ランクRkは、必ずしも数値である必要はなく、概念的には、「半順序集合」の要素であればよい。「半順序集合」とは、その集合に属する2つの要素間に順序が定まったものと、順序が定まっていないものとが存在する集合を言う。
[センサーデータのセンシングのタイミング]
センサーデータのセンシングのタイミングとしては、例えば、予め定められた周期(例えば、10分に1回、1時間に1回、および1日に1回等)であり、センサーデータの種類に応じて決定されたタイミング等が想定される。
図16は、端末間通信の概念図である。図16を参照して、端末装置pは、ランクRk=2を保持している。そして、端末装置pは、あるセルciおよびあるタイムスロットtjにおいてセンサーデータriを検出する。また、端末装置qは、ランクRk=3を保持している。そして、端末装置qは、あるセルci+1およびあるタイムスロットtj+1においてセンサーデータri+1を検出する。
その後、端末装置p,qは、領域REG1内へ移動し、相手の端末装置からHelloパケットを受信する。そして、端末装置pは、端末装置qから受信したHelloパケットから端末装置qのアドレスAdd_qとランクRk=3とを検出する。また、端末装置qは、端末装置pから受信したHelloパケットから端末装置pのアドレスAdd_pとランクRk=2とを検出する。
その後、端末装置pは、自己が検出したセンサーデータriを端末装置qへ送信し、端末装置qは、センサーデータriを受信する。また、端末装置qは、自己が検出したセンサーデータri+1を端末装置pへ送信し、端末装置pは、センサーデータri+1を受信する。
これによって、端末装置p,qの各々は、センサーデータri,ri+1を保持する。そして、端末装置pは、各ブロックbjにおける信頼度R(bj)を、センサーデータriとセンサーデータri+1とから求める。
そうすると、端末装置pは、各ブロックbjにおける信頼度R(bj)がしきい値Rthresh以上であるか否かを判定し、信頼度R(bj)がしきい値Rthresh以上であると判定したとき、センサーデータriとセンサーデータri+1とを上述した方法によって集約し、その集約したセンサーデータをサーバ60へアップロードする。
なお、信頼度R(bj)がしきい値Rthreshよりも小さいと判定されたとき、端末装置pは、センサーデータriとセンサーデータri+1とを集約したセンサーデータをサーバ60へアップロードすることを停止する。
端末装置qも、端末装置pと同じ方法によって、センサーデータriとセンサーデータri+1とを集約してサーバ60へアップロードし、またはセンサーデータri,ri+1を集約したセンサーデータをサーバ60へアップロードすることを停止する。
端末装置pが求めた信頼度R(bj)と、端末装置qが求めた信頼度R(bj)との両方がしきい値Rthresh以上である場合、センサーデータri,ri+1は、端末装置p,qの両方によって集約されてサーバ60へアップロードされるが、端末装置pが求めた信頼度R(bj)と、端末装置qが求めた信頼度R(bj)との一方のみがしきい値Rthresh以上である場合、センサーデータri,ri+1は、端末装置p,qの一方のみによってサーバ60へアップロードされる。従って、ネットワーク50に与える負荷を低減できる。
センサーデータri,ri+1を保持する端末装置p,qは、次の方法によってセンサーデータri,ri+1をサーバ60へアップロードしてもよい。
即ち、端末装置p,qのうち、最も高いランクRkを有する端末装置(端末装置p,qのいずれか)がセンサーデータri,ri+1をサーバ60へアップロードする。
この場合、端末装置pは、端末装置qから受信したランクRk=3が自己のランクRk=2よりも高いので、端末装置qとの遭遇時に自己が検出したセンサーデータriを端末装置qへ送信し、自己が保持するセンサーデータriを削除し、サーバ60へのアップロードを停止する。一方、端末装置qは、端末装置pから受信したランクRk=2よりも自己のランクRk=3が高いので、端末装置pとの遭遇時に自己が検出したセンサーデータri+1を端末装置pへ送信することを抑制し、その後、端末装置pから受信したセンサーデータriとセンサーデータri+1とを集約してサーバ60へアップロードする。これによって、ネットワーク50に与える負荷を低減できる。
なお、領域REG1内で端末間通信を行う端末装置は、2個に限らず、3個以上であってもよい。この場合、3個以上の端末装置は、自己が検出したセンサーデータriを相互に送受信し、その送受信したセンサーデータから各ブロックの信頼度R(bj)を求め、信頼度R(bj)がしきい値Rthresh以上であるブロックについて、センサーデータriを集約してサーバ60へアップロードする。そして、3個以上の端末装置のうち、最大のランクRkを有する端末装置のみがセンサーデータriを集約してサーバ60へアップロードしてもよい。
図17は、端末装置p,qおよびサーバ60の動作を説明するためのフローチャートを示す図である。なお、端末装置pは、端末装置1〜10のいずれかであり、端末装置qは、端末装置1〜10のうち、端末装置pと異なる端末装置である。
図17を参照して、端末装置pのセンサー15は、定期的にセンサーデータrpをセンシングし(ステップS1〜S3)、そのセンシングしたセンサーデータrpを制御部14へ出力する。
制御部14は、センサーデータrpをセンサー15から受けると、タイマーに基づいて、センサーデータrpを受けたときの時刻を検出し、その検出した時刻を示す時間情報time(rp)を生成する。また、制御部14は、センサーデータrpを受けたときの位置情報pos(rp)をGPS16から受ける。そして、制御部14は、センサーデータrp、時間情報time(rp)および位置情報pos(rp)を相互に対応付けてストレージ部17に記憶する。
一方、端末装置qのセンサー15も、定期的にセンサーデータrqをセンシングし(ステップS4〜S6)、そのセンシングしたセンサーデータrqを制御部14へ出力する。そして、端末装置qの制御部14は、端末装置pの制御部14と同じ方法によって、センサーデータrq、時間情報time(rq)および位置情報pos(rq)を相互に対応付けてストレージ部17に記憶する。
そして、端末装置p,qは、相互に相手端末を検知し、端末間通信を行う(ステップS7,S8)。
その後、端末装置pのセンサー15は、センサーデータrpをセンシングし(ステップS9)、そのセンシングしたセンサーデータrpを制御部14へ出力する。端末装置pの制御部14は、上述した方法によって、センサーデータrp、時間情報time(rp)および位置情報pos(rp)を相互に対応付けてストレージ部17に記憶する。
そして、端末装置pの制御部14は、ストレージ部17に格納されたセンサーデータrpを集約し、その集約したセンサーデータrpを通信部13へ出力し、通信部13は、集約したセンサーデータrpをアンテナ12を介してサーバ60へアップロードする(ステップS10)。
一方、端末装置qのセンサー15は、ステップS8の後、センサーデータrqをセンシングし(ステップS11)、そのセンシングしたセンサーデータrqを制御部14へ出力する。端末装置qの制御部14は、上述した方法によって、センサーデータrq、時間情報time(rq)および位置情報pos(rq)を相互に対応付けてストレージ部17に記憶する。
そして、端末装置qの制御部14は、ストレージ部17に格納されたセンサーデータrqを集約し、その集約したセンサーデータrqを通信部13へ出力し、通信部13は、集約したセンサーデータrqをアンテナ12を介してサーバ60へアップロードする(ステップS12)。
サーバ60の通信部61は、端末装置qからのセンサーデータrqを受信するとともに(ステップS13)、端末装置pからのセンサーデータrpを受信する(ステップS14)。そして、サーバ60の通信部61は、その受信したセンサーデータrp,rqを制御部62へ出力し、制御部62は、通信部61から受けたセンサーデータrp,rqをストレージ部63に格納する。
端末装置pのセンサー15は、ステップS10の後、センサーデータrpをセンシングし(ステップS15)、そのセンシングしたセンサーデータrpを制御部14へ出力する。端末装置pの制御部14は、上述した方法によって、センサーデータrp、時間情報time(rp)および位置情報pos(rp)を相互に対応付けてストレージ部17に記憶する。
また、端末装置qのセンサー15は、ステップS12の後、センサーデータrqをセンシングし(ステップS16)、そのセンシングしたセンサーデータrqを制御部14へ出力する。端末装置qの制御部14は、上述した方法によって、センサーデータrq、時間情報time(rq)および位置情報pos(rq)を相互に対応付けてストレージ部17に記憶する。
端末装置p,qおよびサーバ60は、上述した動作を繰り返し実行する。
これによって、端末装置p,qの各々は、センシングしたセンサーデータを集約してサーバ60へアップロードする(つまり、センシングしたセンサーデータの一部をサーバ60へアップロードする)ので、ネットワーク50に与える負荷を低減できる。
図18は、センサーデータの集約処理を説明するためのフローチャートを示す図である。図18を参照して、センサーデータriの集約処理が開始されると、端末装置1〜10の制御部14は、集約の前処理を行う(ステップS21)。そして、端末装置1〜10の制御部14は、集約処理を行う(ステップS22)。その後、端末装置1〜10の制御部14は、集約したセンサーデータriを通信部13へ出力し、通信部13は、制御部14から受けたセンサーデータriを送信バッファに格納し、アンテナ12を介して送信バッファ内のセンサーデータriを全てサーバ60へアップロードする(ステップS23)。これによって、集約処理が終了する。
図19は、図18に示すステップS21の詳細な動作を説明するためのフローチャートを示す図である。
図19を参照して、集約処理が開始されると、端末装置1〜10の制御部14は、集約処理候補ブロック集合Bを”0”に設定し(ステップS211)、i=0を設定する(ステップS212)。
そして、端末装置1〜10の制御部14は、センサーデータriについて、信頼度関数rel(ri,bj)が”0”よりも大きい全てのブロックbjを抽出する(ステップS213)。この場合、端末装置1〜10の制御部14は、図9に示す円CIRに含まれるブロックbjの全てを抽出し、その抽出したブロックbjの総数をJmaxとする。
その後、端末装置1〜10の制御部14は、j=0を設定し(ステップS214)、ブロックbjが集約処理候補ブロック集合Bに含まれるか否かを判定する(ステップS215)。
ステップS215において、ブロックbjが集約処理候補ブロック集合Bに含まれないと判定されたとき、端末装置1〜10の制御部14は、集約対象センサーデータ集合D(bj)を”0”に設定し、ブロックbjの信頼度R(bj)を”0”に設定し、集約処理候補ブロック集合Bとブロックbjとの和集合を演算し、その演算した和集合を集約処理候補ブロック集合Bとする(ステップS216)。
ステップS215において、ブロックbjが集約処理候補ブロック集合Bに含まれると判定されたとき、またはステップS216の後、端末装置1〜10の制御部14は、集約対象センサーデータ集合D(bj)とセンサーデータriとの和集合を演算し、その演算した和集合を集約対象センサーデータ集合D(bj)とするとともに、ブロックbjの信頼度R(bj)と信頼度関数rel(ri,bj)との和を演算し、その演算した和をブロックbjの信頼度R(bj)とする(ステップS217)。
その後、端末装置1〜10の制御部14は、j=Jmaxであるか否かを判定する(ステップS218)。なお、Jmaxは、ステップS213において抽出されたブロックbjの総数である。
ステップS218において、j=Jmaxでないと判定されたとき、端末装置1〜10の制御部14は、j=j+1を設定する(ステップS219)。その後、一連の動作は、ステップS215へ移行し、ステップS218において、j=Jmaxであると判定されるまで、ステップS215〜ステップS219が繰り返し実行される。
そして、ステップS218において、j=Jmaxであると判定されると、端末装置1〜10の制御部14は、i=Imaxであるか否かを判定する(ステップS220)。なお、Imaxは、集約処理の対象となるセンサーデータの総数である。
ステップS220において、i=Imaxでないと判定されたとき、端末装置1〜10の制御部14は、i=i+1を設定する(ステップS221)。その後、一連の動作は、ステップS213へ移行し、ステップS220において、i=Imaxであると判定されるまで、ステップS213〜ステップS221が繰り返し実行される。
そして、ステップS220において、i=Imaxであると判定されると、一連の動作は、図18に示すステップS22へ移行する。
ステップS216において、D(bj)=0、R(bj)=0およびB=B∪{bj}と設定するのは、図19に示すフローチャートは、集約の前処理を行うフローチャートであるので、初期化するためである。
また、ステップS217において、D(bj)=D(bj)∪{ri}と設定するのは、センサーデータriを集約の対象とするためであり、R(bj)=R(bj)+rel(ri,bj)と設定するのは、センサーデータriを集約の対象としたことによって信頼度R(bj)を更新するためである。そして、ステップS217が繰り返し実行されることによって、図10から図12において説明したように、各ブロックbjの信頼度R(bj)は、信頼度関数rel(ri,bj)によって決定されたブロックbjにおけるJmax個の信頼度の総和になり、集約対象センサーデータ集合D(bj)は、Jmax個の信頼度のうち、”0”よりも大きい信頼度をブロックbjにおいて有する全てのセンサーデータriから構成される。
従って、全てのセンサーデータriについて、図19に示すフローチャートを実行することによって、集約処理に必要な集約処理候補ブロック集合B、集約対象センサーデータ集合D(bj)および信頼度R(bj)が決定される。
図20は、図18に示すステップS22の詳細な動作を説明するためのフローチャートを示す図である。なお、図20に示すフローチャートは、上述した方式1における集約処理(図18のステップS22)の詳細な動作を説明するためのフローチャートである。
図20を参照して、図18のステップS21において、集約の前処理が終了すると、端末装置1〜10の制御部14は、j=0を設定する(ステップS222)。
そして、端末装置1〜10の制御部14は、ブロックbjの信頼度R(bj)がしきい値Rthresh以上であるか否かを判定する(ステップS223)。
ステップS223において、ブロックbjの信頼度R(bj)がしきい値Rthresh以上であると判定されたとき、端末装置1〜10の制御部14は、集約対象センサーデータ集合D(bj)に属する全てのセンサーデータriを対象にして集約演算を実行する(ステップS224)。
そして、端末装置1〜10の制御部14は、集約したセンサーデータriを通信部13へ出力し、通信部13は、集約したセンサーデータriを送信バッファに追加する(ステップS225)。
ステップS223において、ブロックbjの信頼度R(bj)がしきい値Rthresh以上でないと判定されたとき、またはステップS225の後、端末装置1〜10の制御部14は、j=Jmaxであるか否かを判定する(ステップS226)。
ステップS226において、j=Jmaxでないと判定されたとき、端末装置1〜10の制御部14は、j=j+1を設定する(ステップS227)。その後、一連の動作は、ステップS223へ移行し、ステップS226において、j=Jmaxであると判定されるまで、ステップS223〜ステップS227が繰り返し実行される。
そして、ステップS226において、j=Jmaxであると判定されると、一連の動作は、図18のステップS23へ移行する。
図20に示すフローチャートを実行することによって、しきい値Rthresh以上の信頼度R(bj)を有するブロックbjに属するセンサーデータriが集約されて送信バッファに追加される。その後、図18のステップS23が実行されることによって、送信バッファ内の全てのセンサーデータriがサーバ60へアップロードされる。
図21は、図18に示すステップS22の別の詳細な動作を説明するためのフローチャートを示す図である。なお、図21に示すフローチャートは、上述した方式2における集約処理(図18のステップS22)の詳細な動作を説明するためのフローチャートである。また、図21に示すフローチャートは、図20に示すフローチャートのステップS222,S223をステップS228,S229に代え、図20に示すフローチャートのステップS226,S227をステップS230に代えたものであり、その他は、図20に示すフローチャートと同じである。
図21を参照して、図18のステップS21において、集約の前処理が終了すると、端末装置1〜10の制御部14は、n=0を設定する(ステップS228)。なお、nは、正の整数であり、サーバ60へアップロードするセンサーデータriの個数である。
ステップS228の後、端末装置1〜10の制御部14は、サーバ60へアップロードするセンサーデータriの個数nが最大アップロード数Umaxよりも大きいか否かを判定する(ステップS229)。
ステップS229において、サーバ60へアップロードするセンサーデータriの個数nが最大アップロード数Umaxよりも大きくないと判定されたとき、上述したステップS224,S225が順次実行される。
そして、ステップS225の後、端末装置1〜10の制御部14は、n=n+1を設定する(ステップS230)。その後、一連の動作は、ステップS229へ移行し、ステップS229において、サーバ60へアップロードするセンサーデータriの個数nが最大アップロード数Umaxよりも大きいと判定されるまで、ステップS229,S224,S225,S230が繰り返し実行される。
そして、ステップS229において、サーバ60へアップロードするセンサーデータriの個数nが最大アップロード数Umaxよりも大きいと判定されると、一連の動作は、図18のステップS23へ移行する。
なお、集約対象センサーデータ集合D(bj)に属するセンサーデータriの個数が1個である場合も、図20または図21に示すフローチャートが実行される。この場合、集約演算は、上述したように、最大値を取ること、最小値を取ることおよび中央値を取ること等からなるので、ステップS224を実行しても問題はない。
図22は、Helloパケットの送信動作を説明するためのフローチャートを示す図である。
図22を参照して、Helloパケットの送信動作が開始されると、端末装置1〜10の制御部14は、自己が搭載された端末装置(端末装置1〜10のいずれか)のアドレスと、ランクRkとを含むHelloパケットを生成し、その生成したHelloパケットを通信部13へ出力する。
そして、端末装置1〜10の通信部13は、制御部14から受けたHelloパケットを近距離無線通信システムを用いてアンテナ11を介してブロードキャストする(ステップS31)。
その後、端末装置1〜10の制御部14は、一定時間待機する(ステップS32)。
そして、端末装置1〜10の各々は、ステップS31,S32を繰り返し実行して、Helloパケットを定期的にブロードキャストする。
図23は、Helloパケットの受信側端末および送信側端末の動作を説明するためのフローチャートを示す図である。
図23を参照して、一連の動作が開始されると、Helloパケットの受信側端末の通信部13は、アンテナ11を介してHelloパケットを受信し(ステップS41)、その受信したHelloパケットを制御部14へ出力する。
そして、Helloパケットの受信側端末の制御部14は、Helloパケットを通信部13から受ける。その後、Helloパケットの受信側端末の制御部14は、自己が搭載された端末装置のアドレスおよびランクRkを含むHelloパケットを生成し、その生成したHelloパケットを通信部13へ出力する。
Helloパケットの受信側端末の通信部13は、Helloパケットを制御部14から受け、その受けたHelloパケットをアンテナ11を介して送信する。即ち、Helloパケットの受信側端末の通信部13は、Helloパケットの送信元端末(相手端末)へ自端末の情報を送信する(ステップS42)。
Helloパケットの送信側端末の通信部13は、アンテナ11を介して相手端末から相手端末の情報(=Helloパケット)を受信し(ステップS43)、その受信した相手端末の情報(=Helloパケット)を制御部14へ出力する。
その後、Helloパケットの送信側端末の制御部14は、自己が搭載された端末装置のアドレスおよびランクRkを含むHelloパケットを生成し、その生成したHelloパケットを通信部13へ出力する。
そして、Helloパケットの送信側端末の通信部13は、Helloパケットを制御部14から受け、その受けたHelloパケットをアンテナ11を介して送信する。即ち、Helloパケットの送信側端末の通信部13は、相手端末へ自端末の情報(Helloパケット)を送信する(ステップS44)。
Helloパケットの受信側端末の通信部13は、アンテナ11を介して相手端末から相手端末の情報(=Helloパケット)を受信し(ステップS45)、その受信した相手端末の情報(=Helloパケット)を制御部14へ出力する。
そして、Helloパケットの受信側端末の制御部14は、センサーデータriを通信部13へ出力し、通信部13は、送信処理を実行する(ステップS46)。
Helloパケットの送信側端末の通信部13は、アンテナ11を介して相手端末からセンサーデータriを受信し(ステップS47)、その受信したセンサーデータriを制御部14へ出力する。
その後、Helloパケットの送信側端末の制御部14は、センサーデータriを通信部13へ出力し、通信部13は、送信処理を実行する(ステップS48)。
Helloパケットの受信側端末の通信部13は、アンテナ11を介して相手端末からセンサーデータriを受信し(ステップS49)、その受信したセンサーデータriを制御部14へ出力する。
ステップS48の後、Helloパケットの送信側端末の動作は、終了し、ステップS49の後、Helloパケットの受信側端末の動作は、終了する。
図24は、図23のステップS46の詳細な動作を説明するためのフローチャートを示す図である。
図24を参照して、図23のステップS45の後、Helloパケットの受信側端末の制御部14は、i=0を設定する(ステップS461)。
そして、Helloパケットの受信側端末の制御部14は、センサーデータriを相手端末が保持した方が適切であると判断される場合、センサーデータriを通信部13へ出力する。そして、Helloパケットの受信側端末の通信部13は、センサーデータriを制御部14から受け、その受けたセンサーデータriを送信バッファへ追加する。即ち、Helloパケットの受信側端末は、センサーデータriを相手端末が保持した方が適切であると判断される場合、センサーデータriを送信バッファへ追加する(ステップS462)。
そして、Helloパケットの受信側端末の制御部14は、i=Imaxであるか否かを判定する(ステップS463)。
ステップS463において、i=Imaxでないと判定されたとき、Helloパケットの受信側端末の制御部14は、i=i+1を設定する(ステップS464)。その後、一連の動作は、ステップS462へ移行し、ステップS463において、i=Imaxであると判定されるまで、ステップS462〜ステップS464が繰り返し実行される。
そして、ステップS463において、i=Imaxであると判定されると、Helloパケットの受信側端末の通信部13は、アンテナ11を介して送信バッファ内のセンサーデータriを相手端末へ送信する(ステップS465)。
その後、一連の動作は、図23のステップS47へ移行する。
なお、図23のステップS48の動作も、図24に示すフローチャートに従って実行される。
図25は、図24に示すステップS462の詳細な動作を説明するためのフローチャートを示す図である。
図25を参照して、図24のステップS461の後、Helloパケットの受信側端末の制御部14は、自端末のランクRkが相手端末のランクRkよりも小さいか否かを判定する(ステップS4621)。
ステップS4621において、自端末のランクRkが相手端末のランクRkよりも小さいと判定されたとき、Helloパケットの受信側端末の制御部14は、センサーデータriを通信部13へ出力し、通信部13は、制御部14から受けたセンサーデータriを送信バッファへ追加する(S4622)。
一方、ステップS4621において、自端末のランクRkが相手端末のランクRkよりも小さくないと判定されたとき、Helloパケットの受信側端末は、センサーデータriの相手端末への送信を停止する(ステップS4623)。
そして、ステップS4622の後、一連の動作は、図24のステップS463へ移行し、ステップS4623の後、一連の動作は、図23のステップS48へ移行する。
図25に示すフローチャートに従えば、自端末のランクRkが相手端末のランクRkよりも小さいと判定されたとき、センサーデータriは、送信バッファへ追加され(ステップS4621の”YES”,ステップS4622参照)、相手端末へ送信される(図24のステップS465参照)。
一方、自端末のランクRkが相手端末のランクRkよりも小さくないと判定されたとき、センサーデータriの相手端末への送信が停止される(ステップS4623参照)。これは、次の理由による。自端末のランクRkが相手端末のランクRkよりも小さくないと判定された場合、自端末のランクRkが相手端末のランクRkよりも大きい場合と、自端末のランクRkが相手端末のランクRkと同じである場合とがある。自端末のランクRkが相手端末のランクRkよりも大きい場合は、自端末がセンサーデータriをサーバ60へアップロードすべきであるので、センサーデータriの相手端末への送信が停止される。また、自端末のランクRkが相手端末のランクRkと同じである場合、自端末および相手端末の両方が、それぞれ、自己が保持するセンサーデータriをサーバ60へアップロードすべきであるので、センサーデータriの相手端末への送信が停止される。
このように、センサーデータriを相手端末が保持した方が適切であるか否かの判断は、各端末装置1〜10に割り当てられたランクRkを用いて行われる。
なお、センサーデータriを相手端末が保持した方が適切であるか否かの判断は、各端末装置1〜10に割り当てられたランクRkに限らず、本発明者による特願2016−196933に記載されているように、滞留地点により近づくと予想される端末がセンサーデータを保持すると判断してもよい。
また、図17に示すステップS7,S8の端末間通信は、図22から図25に示すフローチャートに従って実行される。また、図17に示すステップS10,S12の集約とサーバ60へのアップロードは、図18、図19および図20(または図21)に示すフローチャートに従って実行される。
そして、自端末で検出したセンサーデータと、端末間通信によって相手端末から受信したセンサーデータとを集約する場合、図20のステップS223において、自端末で検出したセンサーデータの信頼度と、相手端末から受信したセンサーデータの信頼度とから、各ブロックでの信頼度の総和R(bj)を求め、その求めた総和R(bj)がしきい値Rthresh以上であるか否かが判定される。
そして、総和R(bj)がしきい値Rthresh以上であると判定されたとき、ステップS224,S225が順次実行される。一方、総和R(bj)がしきい値Rthresh以上でないと判定されたとき、ステップS224,S225は、実行されない(即ち、センサーデータは、サーバ60へアップロードされない)。
この発明の実施の形態においては、端末装置1〜10の動作は、ソフトウェアによって実現されてもよい。
この場合、端末装置1〜10の各々は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Random Access Memory)を備える。
端末装置1〜10の各々のROMは、図17に示すフローチャートのステップS1〜S3,S7,S9,S10,S15(図18に示すフローチャートのステップS21〜S23、図19に示すフローチャートのステップS221〜S221、図20に示すフローチャートのステップS222〜S227(または図21に示すフローチャートのステップS228,S229,S224,S225,S230)、図22に示すフローチャートのステップS31,S32、図23に示すフローチャートのステップS41,S42,S45,S46,S49(または図23に示すフローチャートのステップS43,S44,S47,S48)、図24に示すフローチャートのステップS461〜S465、および図25に示すフローチャートのステップS4621〜S4623を含む)を備えるプログラムProg_Aを格納する。
また、端末装置1〜10の各々のROMは、図17に示すフローチャートのステップS4〜S6,S8,S11,S12,S16(図18に示すフローチャートのステップS21〜S23、図19に示すフローチャートのステップS221〜S221、図20に示すフローチャートのステップS222〜S227(または図21に示すフローチャートのステップS228,S229,S224,S225,S230)、図22に示すフローチャートのステップS31,S32、図23に示すフローチャートのステップS41,S42,S45,S46,S49(または図23に示すフローチャートのステップS43,S44,S47,S48)、図24に示すフローチャートのステップS461〜S465、および図25に示すフローチャートのステップS4621〜S4623を含む)を備えるプログラムProg_Bを格納する。
RAMは、演算の途中結果を一時的に格納する。
そして、CPUは、ROMからプログラムProg_A(またはプログラムProg_B)を読み出して実行し、上述した方法によって、センサーデータriをサーバ60へアップロードする。
また、プログラムProg_A(またはプログラムProg_B)は、CD,DVD等の記録媒体に記録されて流通してもよい。
プログラムProg_A(またはプログラムProg_B)を記録した記録媒体をパーソナルコンピュータに装着すると、CPUは、記録媒体からプログラムProg_A(またはプログラムProg_B)を読み出して実行し、上述した方法によって、センサーデータriをサーバ60へアップロードする。
従って、プログラムProg_A(またはプログラムProg_B)を記録した記録媒体は、コンピュータ(CPU)読み取り可能な記録媒体である。
なお、この発明の実施の形態においては、上述した方法によってサーバ60へアップロードするセンサーデータriを決定する制御部14は、センサー15によって検出されたセンサーデータriのうち、センサーデータの信頼度がしきい値以上であるセンサーデータriをサーバ60へ送信するセンサーデータとして決定する決定処理を行う「処理手段」を構成する。
また、この発明の実施の形態においては、センサーデータriをサーバ60へ送信する通信部13は、制御部14によって決定されたセンサーデータriをサーバ60へ送信する「送信手段」を構成する。
上記においては、センサーデータriの検出対象の空間をセルciに分割し、その分割したセルci、およびタイムスロットtjで検出したセンサーデータriを上述した方法によってサーバ60へアップロードすると説明したが、この発明の実施の形態においては、これに限らず、セルciおよびタイムスロットtjを規定せずに、センサーデータriを検出した位置を示す位置情報pos(ri)と、センサーデータriを検出した時刻を示す時間情報time(ri)とをセンサーデータriに対応付けて保持しておき、その保持したセンサーデータriのうち、サーバ60へアップロードするセンサーデータを上述した方法によって決定し、その決定したセンサーデータを集約して位置情報pos(ri)および時間情報time(ri)とともにサーバ60へアップロードするものであればよい。
従って、この発明の実施の形態による端末装置は、センサーデータを検出するセンサーと、検出されたセンサーデータのうち、センサーデータの信頼度がしきい値以上であるセンサーデータをサーバへ送信するセンサーデータとして決定する決定処理を行う処理手段と、決定されたセンサーデータをサーバへ送信する送信手段とを備えていればよい。
端末装置は、センサーと、処理手段と、送信手段とを備えていれば、検出したセンサーデータのうち、信頼度がしきい値以上であるセンサーデータがサーバへ送信され、通信網への負荷を低減できるからである。
また、この発明の実施の形態による無線通信システムは、上記端末装置と、端末装置からセンサーデータを受信し、その受信したセンサーデータを保持するサーバとを備えていればよい。
無線通信システムが上記端末装置とサーバとを備えていれば、端末装置がサーバへセンサーデータを送信するときの通信負荷を低減できるからである。
更に、この発明の実施の形態によるプログラムは、処理手段が、センサーによって検出されたセンサーデータのうち、センサーデータの信頼度がしきい値以上であるセンサーデータをサーバへ送信するセンサーデータとして決定する決定処理を行う第1のステップと、
送信手段が、第1のステップにおいて決定されたセンサーデータの一部をサーバへ送信する第2のステップとをコンピュータに実行させるためのプログラムであればよい。
プログラムが第1および第2のステップをコンピュータに実行させれば、検出したセンサーデータのうち、信頼度がしきい値以上であるセンサーデータがサーバへ送信され、通信網への負荷を低減できるからである。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。