説明

センサネットシステム、及びセンサノード

【課題】
省電力化のために一定時間間隔で起動状態と停止状態を繰り返す間欠動作を行うセンサノードを有するセンサネットシステムに関し、特に、センサノードの間欠動作に整合させてシステム全体で時刻同期を取る。
【解決手段】
管理サーバは、指定期間毎に各基地局へ時刻を設定するためのsetTimeコマンドを発行する。各中継機2は、基地局から受信した時刻を基に自身の時刻を設定あるいは修正した後、配下の全センサノード3へsetTimeコマンドを展開するために、各センサノード用の時刻設定要フラグ710をONにする。中継機2は、センサノード3からコマンド要求であるPolling1007を受信した際、その時点での時刻を取得し(1005)、該時刻を用いてsetTimeコマンド1010を生成し、このセンサノード3へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、省電力化のために一定時間間隔で起動状態と停止状態を繰り返す間欠動作を行うセンサノードの利用システムに関し、特に、システム全体で時刻同期を取る技術に関する。
【背景技術】
【0002】
従来、センサネットワークで用いられる無線通信方式として、ZigBeeがあった(例えば、非特許文献1参照)。
【0003】
また、従来、地震による震源位置特定の手法として、グリッドサーチ法があった(例えば、非特許文献2参照)。
【0004】
【非特許文献1】ZigBee規格、ZigBee Alliance発行、ZigBee AllianceのWebサイト [平成19年05月21日検索]、インターネット <URL: http://www.zigbee.org/ >
【非特許文献2】緊急地震速報の概要や処理手法に関する技術的参考資料、気象庁のWebサイト [平成19年05月21日検索]、インターネット<URL: http://www.seisvol.kishou.go.jp/eq/EEW/kentokai5/ >
【発明の開示】
【発明が解決しようとする課題】
【0005】
近年、センサ機能を搭載した小型無線センサノード(以下、センサノード)、中継機、基地局、及びセンサネット管理サーバ(以下、管理サーバ)から構成されるセンサネットシステムの開発が進められている。センサノードは、人又は場所の状態等(センサデータ)を観測し、観測したセンサデータを中継機によりマルチホップに中継し、基地局を経由して管理サーバに送信する。管理サーバは、受信したセンサデータに基づいて、各種処理を実行する。
【0006】
センサネットシステムにおけるキーデバイスは、小型、低電力を特徴とするセンサノードである。小型であるが故に環境や人を含むあらゆるモノへ付けることが可能となり、低電力であるが故に外部給電することなく電池で数年間稼動させることができる。さらに無線で通信するが故に、基地局または中継機を介して広範囲へ配置することが可能である。
【0007】
センサノードにおける特徴的な動作として、間欠動作がある。これは、センシングやデータ送信のようなタスクを実行する時のみ必要なハードウェアを駆動し、実行すべきタスクがない時はセンサ、高周波回路(RF)等の周辺ハードウェアは完全に停止し、マイコンも低電力モードで休眠させるという動作である。間欠動作を行うことにより、センサノードは、限られたバッテリの下で長時間動作が可能となる。
【0008】
マイコンが所定の休眠時間を満了すると、タイマ部が割り込みを発生させることにより、マイコンは通常動作モードへ復帰する。そして所定の手順に従い、センシングを実行し、センシングしたデータを送信し、自分宛のデータがある場合にはポーリング(Polling)により受信し、該データの処理を行う。その時点で実行すべき全てのタスクが終了すれば、再び所定時間の休眠に入る。休眠期間の合間のタスク処理期間の長さは数10ミリ秒から長くても1秒程度なので、センサノードはほとんどその時間は休眠状態にあることになる。
【0009】
なお、間欠動作の基本的な特徴は「タスクを実行する必要がない時は休眠する」ことであるので、タスクのスケジューリングの方法によって間欠動作の実施方法には多様な変化が考えられる。例えばセンサノードが複数のセンサを搭載する場合には、センサ毎に別々のセンシング周期を持たせてもかまわない。また、センシング、データ送信、データ受信の各々は、本来的には独立のタスクであるので、各々のタスク毎に独立の動作周期を持たせても構わない。
【0010】
このように間欠動作を行うセンサノードにおける管理サーバからの指示(コマンド)の受信方法として、定期的に自分宛のコマンドがあるかどうかを送信元へ問い合わせる、Polling方式がある。この場合、センサノード自身がPollingしない限りコマンドが送信されてくることは無いため、センサノードは自身の間欠動作周期に従い動作することが可能である。センサネットワークで用いられる無線通信方式であるZigBee(非特許文献1)の場合、Pollingの際の問い合わせパケットの送信と、それに対する応答を受信するまでの時間は合わせて10ミリ秒程度であるので、たとえデータが無い状況でPollingを実施したとしても、それに伴う電力消費の増大はごくわずかである。
【0011】
上述の間欠動作方式は、センサノードの低電力化、長寿命化のために必須の技術であるが、一方で不都合も発生する。無線が一時的に遮断されデータが届かない時や、管理サーバが停止していて送信できないなど、何らかの原因でデータが管理サーバに届かない場合でもセンシングを続ける必要があり、その際に観測時刻が必要である。また、通信経路において遅延した場合、観測時刻と管理サーバにて受信した時刻が一致しない場合がありうる。しかし、センシングした時刻を正確に知るためには、センサノードにおいて観測時刻を付与するのが理想であり、センサノードに時計を持たせて、且、基準時刻と正確に合わせる必要がある。しかし、センサノードが複数ある場合は、コマンドにより時刻を設定することが理想であるが、センサノードが間欠動作を行っている故、常時コマンドを送付することができない。そのため、センサノードがPollingを行ったタイミングで、管理サーバが随時コマンドを発行することが考えられるが、センサノードは管理サーバからの返戻を受信するまで待機する必要があるため、長時間起動している必要があるため、エネルギー効率が悪い。
【0012】
本発明は、このような従来の間欠動作方式における問題点を解決し、エネルギー効率の良い、間欠動作方式を用いたセンサネットシステムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記従来の課題を解決するために、本発明においては、基地局と中継機とセンサノードが持つ時計の時刻設定をする場合、中継機がセンサノードからコマンド送信要求されたタイミングにおいて該中継機の最新時刻を取得し、時刻設定コマンドを発行することにより、コマンド送信要求を発行したセンサノードの時刻設定を行う。
【0014】
また、本発明のセンサネットシステムは、中継機は配下の全てのセンサノード毎に対応した時刻設定要フラグを持ち、該中継機が基地局より時刻設定コマンドを受信し、該中継機の持つ時計の時刻設定をしたタイミングでこの時刻設定要フラグをオン状態(ON)にし、該中継機はセンサノードからのコマンド送信要求を受信した時に、時刻設定フラグの状態を確認し、フラグがONの時のみ時刻設定コマンドを送信し、該中継機がこの時刻設定コマンドの返戻を受信したタイミングでこの時刻設定フラグをオフ状態(OFF)にすることにより、時刻設定を行う。
【0015】
更に、本発明のセンサネットシステムは、基地局は複数の中継機およびセンサノードを配下に持ち、該配下のノードを管理する管理テーブルを持つシステムであり、管理サーバから基地局に対して時刻設定コマンドを送付すると、該基地局は管理テーブルを参照し、該基地局の配下の中継機全てに対して直ちに時刻設定コマンドを展開することにより、中継機の時刻同期を行う。
【0016】
また更に、本発明のセンサネットシステムは、センサノードが基地局に接続したタイミングないし定期的に時刻要求コマンドを発行し、基地局から時刻要求コマンドに対する返戻を受信した時点でタイマを起動する。基地局は時刻要求コマンドを受信した時点で基準時刻を取得し、センサノードのコマンド要求を受信したタイミングで該基準時刻をセンサノードに送信する。センサノードは基地局から基準時刻を受信するとタイマを停止し、タイマ停止時刻とタイマ起動時刻の差分からタイマ起動時間を算出し、該基準時刻に該タイマ起動時間を足すことで時刻設定を行う。
【発明の効果】
【0017】
本発明によれば、センサネットワークシステムの消費電力の低減、特に、センサノードが電池駆動の場合はその電池寿命を延ばすことが可能となる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例1】
【0019】
図1は第一の実施例のセンサネットシステムのシステム構成の全体を表す。センサネットシステムは、センサノードの制御や関連付けなどの管理を行うミドルウェアが搭載されている管理サーバ4、複数の基地局1、複数の中継機2および複数のセンサノード3から構成されている。基地局4と中継機2とセンサノード3は無線で接続されており、 パーソナル・エリア・ネットワーク(Personal Area Network、PAN)を構築している。基地局1と管理サーバ4はイーサ(Ether)ないしユーエスビー(Universal Serial Bus、 USB)などにより接続されている。
【0020】
図2は図1のセンサネットシステムで用いられるセンサノード3のハードウェア構成の一具体例を示した図である。
【0021】
センサノード3は無線送受信を行う無線送受信部(RF Transceiver)201、表示部(Display)202、ボタン(Button)203、センサ(Sensor(s))204、処理部であるマイコン(MicroProcessor)205、絶対時刻を持つリアル・タイム・クロック(Real-time Clock)206、記憶部である揮発性メモリ(Volatile Memory)207と不揮発性メモリ(Nonvolatile Memory)208と読み出し専用メモリ(Read-Only Memory)209、及びノードの各部に電力を供給するバッテリ(Battery)210とから構成される。
【0022】
センサノード3は、そのハードウェアにおいてReal-Time Clock206以外の電源をOFF状態にする休眠状態と、全ての回路の電源をON状態にする起動状態の2つの動作を一定周期ごとに使い分ける。センサノード3は起動状態において、様々なセンサSensor(s)204を用いてセンシングを行う。センシングされた情報はReal-Time Clock206の時刻情報と共にMicroProcessor205にてパケットに格納され、RF Transceiver201から基地局及び中継機に無線で送信されると共に、Nonvolatile Memory208へ格納される。
【0023】
操作ボタンButton203は、ユーザの操作を受け付ける入力デバイスであり、特定のボタン操作により、センサノード3の特定の動作を起動したり、動作パラメータを設定したりすることができる。
【0024】
表示部Display202は、ユーザに対して情報を表示するための出力デバイスである。例えば、センサノード3が環境計測用に室内または室外に設置する用途である場合には、センサ部Sensor(s)204により計測した最新の測定値を表示することができる。その際、低電力化のために、通常時は何も表示せず、特定のボタン操作を行った時のみ、該最新測定値を表示するといった活用が好適である。また、センサノード3が名札型や腕時計型等の携帯センサノードである場合には、通常時は時刻情報を表示し、管理サーバ4からテキストメッセージを受信した場合には該メッセージを表示したり、音声メッセージを受信した際には該着信情報を表示したりするといった活用が好適である。また、ユーザのボタン操作に連動して、階層化された操作メニューを表示することができる。該操作メニューに従ってボタン操作を行うことにより、アプリケーションユーザ(Application User)やシステム管理者(System Manager)は、センサノードの動作パラメータを設定したり、通信失敗時のエラー情報を確認したりすることができる。
【0025】
図3は図1のセンサネットシステムの中継機2のハードウェア構成の一具体例を示した図である。中継機は無線送受信を行う無線送受信部(RF Transceiver)301、表示部(Display)302、ボタン(Button)303、センサ(Sensor(s))304、マイコン(MicroProcessor)305、絶対時刻を持つリアル・タイム・クロック(Real-time Clock)306、揮発性メモリ(Volatile Memory)307、不揮発性メモリ(Nonvolatile Memory)308、読み出し専用メモリ(Read-Only Memory)309とから構成される。
【0026】
中継機は揮発性メモリ307に記憶された時刻設定要管理テーブル311を用いて配下のセンサノードに対する経路を把握している。基地局から無線で配信されたセンサノードへのコマンドをRF Transceiver301にて受信し、テーブル311に存在するセンサノードに対し無線で配送する。また、センサノードから無線で送信されたセンシング情報を受信し、受信したセンシング情報を基地局へ無線で送信する。
【0027】
中継機RT1は、いつ送信されてくるか分からない、センサノードや基地局からのデータを常時待ち受けていなければならないので、センサノードと異なり、バッテリではなく外部給電により動作する。電源線(Power Line)より供給される電力を、電源回路(Power Supply Circuit)310により整流等を行った上で各機能部へ供給する。
【0028】
消費電力の心配をする必要がないため、中継機2のマイコン305はセンサノード3の場合のように休眠状態に入る必要はない。そのため割り込み制御部(Interrupt Controllerやタイマ部(Timer)は図中では省略してあるが、これらの機能は一般的なデータ送受信アルゴリズムの範囲内で活用される。
【0029】
図4は図1のセンサネットシステムにおける基地局1のハードウェア構成の一具体例を示した図である。
【0030】
基地局は、IPネットワーク(IP Network)を介して管理サーバ(Middleware Server)4と通信を行うためのLAN通信インタフェース(LAN I/F)412を備える以外は、中継機2の構成と同様であるため、説明を省略する。なお、同図において、数番401〜410は図3における数番301〜310に対応する。なお、揮発性メモリ407中には後述するバインディング・テーブル(Binding Table)411が記憶される。
【0031】
図5は図1のセンサネットシステムの管理サーバ4のハードウェア構成の一具体例を示したブロック図である。
【0032】
センサネット管理サーバ4は、処理部(CPU)501、外部通信部502、電源503、ハードディスクドライブ504、ユーザからの命令をするための入力装置であるキーボード505、表示装置であるディスプレイ506、メモリ507からなる。
【0033】
センサネット管理サーバ4は、外部通信部502を経由し、基地局1が中継機2を介してセンサノード1から収集したデータの受信、および基地局1へコマンドの送信を行う。CPU501はメモリ507に記憶されたミドルウェア等のプログラムを読み込み、プログラムの指示に従って通信部502を通じて取得した観測値などのデータの加工を行い、ハードディスクドライブ504へデータを蓄積したり、ディスプレイ506に表示したりする。この管理サーバ4で実行される加工・表示の具体例は後で詳述する。またCPU501は、キーボード505から入力されたユーザコマンドの解釈を行い、通信部502を通じて基地局1へと配信する。
【0034】
次に、図6は本実施例におけるセンサノード3の機能を示すブロック図である。
【0035】
センサノード3の機能は、時刻を管理するReal-Time Clock206と、観測や観測値蓄積やイベント発行やPolling発行を管理するMain部601と、センサを用いて観測を行う観測部602と、観測値などのイベントを発行するイベント発行部604と、親中継機2ないし親基地局1に対しコマンドの有無の確認であるPollingの発行を行うPolling発行部605と、イベントないしPollingの送信を行う送信部606と、観測値の蓄積を管理する観測値蓄積管理部(イベント蓄積部)607と、観測値を蓄積し観測値テーブル613により管理する観測値蓄積部603と、観測値テーブル613内の時刻未確定フラグがONの観測値に対してタイムスタンプの補正を行う観測値タイムスタンプ補正部608と、Real-Time Clockの設定ないし修正を行うRTC設定部609と、親中継機ないし親基地局よりコマンドを受信する受信部610と、受信したコマンドを解析するコマンド解析部611と、時刻設定以外のコマンドを処理する他コマンド処理部612とがある。
【0036】
観測値蓄積部603に蓄積される観測値テーブル613には、観測値の通し番号であるシーケンス番号614と、観測値が時刻設定済みか否かを記憶している時刻未確定フラグ615と、観測値616と、該観測値の時刻617が保存される。なお、図2に示したセンサノード3のハードウェア構成上、観測値蓄積部603は不揮発性メモリ203に形成される。
【0037】
また、図6の送信部606、受信部610は図2におけるRF Transceiver201に相当する。その他Main部601、観測部602、イベント発行部604〜RTC設定部609、コマンド解析部611、及び他コマンド処理部612は、図2のMicroProcessor205において実行されるプログラム機能であり、通常これらのプログラムはROM209などの記憶部に記憶されている。
【0038】
図7は本実施例における中継機2の機能を示すブロック図である。
【0039】
中継機2はコマンド受信部701、時刻設定処理部1101、コマンド送信処理部1401、コマンド要求受信部707、コマンド発行部708、コマンド発行部708、Real-Time Clock206からなる。また、時刻設定処理部1301は、時刻設定要ノード管理部703および時刻設定管理部702がある。コマンド送信処理部1401には、時刻設定状況確認部706、および時刻取得部705がある。また、図3のVolatile Memory307に時刻設定要ノード管理テーブル311を持つ。この時刻設定要ノード管理テーブル311には、センサノード毎に別々に割り振られるセンサノードID709と、ノードID709のセンサノードが時刻設定済みか否かを判定するための時刻設定要フラグ710が保存される。
【0040】
中継機2は管理サーバ4から配送されたコマンドを、コマンド受信部701にて受信する。受信したコマンドが時刻合わせ(setTime)コマンドの場合に、Real-time Clock306の時刻を設定あるいは修正を行う時刻設定部702、時刻設定要ノード管理テーブル311に登録されているセンサノードの時刻設定要フラグをONにする時刻設定要ノード管理部703が機能する。
【0041】
また、センサノード3からのPollingは、コマンド要求受信部707にて受信する。時刻設定状況確認部706は、時刻設定要ノード管理テーブル311内のセンサノードからPollingを受信した際、当該センサノードの時刻設定要フラグ710を確認する。時刻取得部705は、Real-Time Clock306から時刻を取得する。コマンド発行部708は、センサノード3へコマンドを発行する。これらの機能は、例えば図3に示したMicroProcessor305で順次実行されるプログラムであることは言うまでもなく、以下同様である。
【0042】
図8は本実施例における基地局1の機能を示すブロック図である。
【0043】
基地局1の機能は、管理サーバ4と通信を行う有線通信部801と、管理サーバ4からのコマンドの処理を行うコマンド処理部805と、基地局1のReal-Time Clock806を設定するための時刻設定部806と、setTimeコマンドを受信した際にBindingTable411を参照し、setTimeコマンドを処理するためのsetTime処理部807と、BindingTable411に存在する配下の中継機2ないしセンサノード3に対しコマンドを発行するコマンド発行部804と、中継機2ないしセンサノード4と無線通信を行う無線通信部803と、中継機2ないしセンサノード4から受信したイベントの処理を行うイベント処理部802とからなる。BindingTable808は、登録されているノードが中継機かセンサノードかを記憶していく種類記憶域809と、ノード毎に個別に与えられるノードID810が保存されている。
【0044】
図9は本実施例におけるセンサネット管理サーバ4のネット管理機能を示すブロック図である。
【0045】
管理サーバ4のネット管理機能は、時刻設定管理部902と、ユーザコマンド910を受信し時刻設定管理部902やコマンド作成部(Action Manager)906に伝達するためや外部へ返戻を送信を行う外部要求受付部901と、NTP(Network Time Protocol)などの基準時刻903と同期を取り任意の時間毎にsetTimeコマンドを発行するよう管理を行うタイマ904と、setTimeコマンドの発行を行う時刻合わせ(setTime)コマンド発行部905と、基地局1との通信を行う通信部502に該当するセンサネット通信部907(Profiled Adapter & ZigBee Adapter)と、基地局1ないし中継機2ないしセンサノード3からのイベントの配送を行うイベント配送部(Event Publisher)908と、センサノード3の観測値を保存する観測値蓄積部909とからなる。この観測蓄積部908は、図5のおけるハードディスクドライブ504やメモリ507などの記憶部に形成されることは言うまでもなく、この蓄積部909と通信部907を除いた機能は、図5に示した処理部(CPU)501の処理機能として構成される。
【0046】
続いて、本実施例のセンサネットシステムにおいて、各装置の構成・機能を用いてシステム全体の時刻同期を取る動作について説明する。
【0047】
図10はセンサノード3(センサ#1)が10分間を周期とする間欠動作を行う際の、中継機2・センサノード(センサ#1)3間の時刻設定シーケンス図である。なお、本図は時刻設定シーケンスを表す図のため、観測など時刻設定以外の動作は省略している。
【0048】
さて、センサ#1が休眠期間1012から復帰し起動期間1006に入ると、センサ#1は親中継機2に対してPolling1007を行う。この時点では中継機2はsetTimeを受信しておらず、時刻設定要ノード管理テーブル311内の時刻設定要フラグ710がOFF(同図でホワイト表示)のため、中継機がセンサ#1に対し、Polling1007の応答としてコマンド無し1008を送信する。該応答を受信したセンサ#1は直ちに休眠期間1013に移行する。ここで、起動期間1006の長さは、Pollingと応答の受信を含めても数ミリ秒から数10ミリ秒程度である。
【0049】
その後、中継機2は、管理サーバ4が発行する基準時刻1001を取得すると、該中継機自身のReal-time Clock306を設定ないし修正し、時刻設定要ノード管理テーブル311に登録されている配下のセンサノード3の時刻設定要フラグ710をON(同図でグレー表示)にする。中継器2は、時刻設定要ノード管理テーブル311に登録されている配下のセンサノード(センサ#1)から、コマンド要求であるPolling1007を受信した際、時刻設定要フラグ710を確認し、該フラグがONの時はコマンド有り1009を返戻し、且、該中継機自身のReal-time Clock306より時刻を取得し(S1006)、該センサ#1へとsetTimeコマンド1010として取得した時刻(T2)を配送する。その後、中継機3は該センサノードの該時刻設定要フラグ710をOFFにする。該センサ#1は、コマンド有り1009の返戻を受け取ると、しばらく受信待ち状態を維持し、受信した時刻(T2)を基に該センサノード自身のReal-Time Clock206の時刻を修正する。このとき、センサ#1の起動期間1014は、setTimeコマンドを受信し時刻設定を行うため起動期間1006より長くなるが、合計で10ミリ秒から50ミリ秒程度と、休眠期間の長さである10分間と比較すると一瞬である。
【0050】
図11は管理サーバ4と基地局1と中継機2と2台のセンサノード3との間の時刻設定シーケンス図である。なお、センサノード3が3台以上の場合も同様なシーケンスとなる。
【0051】
まず、センサ#1が休眠期間1106から復帰し起動期間1107に入ると、センサ#1は親中継機2に対してPolling1007を行う。この時点では中継機2はsetTimeを受信しておらず、時刻設定要ノード管理テーブル1111内の時刻設定要フラグ710が全てOFFのため、中継機2がセンサ#1に対しPolling1007の応答としてコマンド無し1008を送信する。該応答を受信したセンサ#1は直ちに休眠期間1108に移行する。ここで、起動期間1107の長さは、Pollingと応答の受信を含めても数ミリ秒から数10ミリ秒程度である。センサ#2も同様に、復帰後に起動期間1111に入ると、親中継機2に対してPolling1103を行う。中継機は、センサ#1同様にコマンド無し1104を返戻し、該返戻を受信したセンサ#2は直ちに休眠期間1112へと移行する。
【0052】
管理サーバ4は上述の通り、NTPにより基準時刻と同期を行っている。管理サーバは定期的、あるいはユーザが指定したタイミングにおいて基地局1に対しsetTimeコマンドとして時刻(T1)を送信する。該基地局1は、受信した時刻(T1)を用いて自身のReal-Time Clock406を設定ないし修正する(1101)。該基地局3は、Real-Time Clock設定1101と同時に、該基地局が通信可能なノードの管理テーブルであるBindingTable808を確認し、該テーブルに登録されている配下の中継機に対しsetTimeコマンドとして管理サーバ4から取得した時刻(T1)を送信する。図11では中継機2を1つしか記載していないが、テーブルに登録されている中継機が複数ある場合は、全ての中継機に同じように時刻(T1)を送信することにより、時刻同期を行なう。
【0053】
中継機2は、前記基地局から受信した時刻(T1)を基に該中継機自身のReal-Time Clock306を設定ないし修正し(1301)、時刻設定要ノード管理テーブル311に登録されている配下の全てのセンサノードに対し、時刻設定要フラグ710をONにする。センサノード3a(センサ#1)は、休眠期間1108から復帰後にただちに観測(1102)を行い、親中継2に対しコマンド要求であるPolling1107を行う。センサ#1の親中継機2は、時刻設定要ノード管理テーブル311に登録されている配下のセンサノードから、コマンド要求であるPolling1107を受信すると、該センサノードの時刻設定要フラグ710を確認し、該フラグがONの時はコマンド有り1009を返戻し、且、該中継機2自身のReal-Time Clock306より時刻を取得し(S1406)、setTimeコマンドとして時刻(T2)を送信する。その後、該センサ#1からsetTimeコマンド応答であるAckを受信すると、該センサノードの時刻設定要フラグ710をOFFにする。このとき、センサ#1の起動期間1109は、setTimeコマンドを受信し時刻設定を行うため起動期間1107より長くなるが、Pollingと時刻設定受信とObservedイベント送信(1105)と返戻(Ack)の受信を行う処理時間の合計で10ミリ秒から50ミリ秒程度と、休眠期間の長さである10分間と比較すると一瞬である。
【0054】
センサノード3b(センサ#1)は、コマンド有り1009の返戻を受け取ると、しばらく受信待ち状態を維持し、受信した時刻(T2)を基に該センサノード自身のReal-Time Clock206の時刻を修正する。該センサ#1は、自身のReal-Time Clock206から時刻を取得し、観測値に付与しObservedイベント(1105)として中継機2に送信する。センサノード3b(センサ#2)に関しても、センサ#1の時刻設定シーケンスと同様のシーケンスである。
【0055】
なお、図11には示していないが、基地局1に直接センサノード3が複数接続されている場合もあり得る。その場合は、基地局1とセンサノード3間のシーケンスは、中継機2とセンサノード3間のシーケンスにおいて中継機2を基地局1に置き換えたシーケンスで、基地局1とセンサノード3がそれぞれ同様に振舞うことは言うまでもない。
【0056】
続いて、図12に本実施例における中継機2の動作PAD図を示す。
【0057】
中継機2は、受信したデータがセンサノード3からの観測値などのイベントの場合は基地局1へ転送を行うイベント転送1203と、センサノード3からのPollingの場合に行うコマンド送信1401と、基地局1からのsetTimeコマンドを受信した際に行う時刻設定処理1301と、時刻設定以外のコマンドを受信した際に行うコマンド蓄積処理1204とを行う。
【0058】
図13は中継機2の時刻設定処理部1301における時刻設定処理シーケンスを表す図である。中継機2は管理サーバ4から基地局1を介してsetTimeコマンドをコマンド受信部701において受信する(ステップS1302)。そして、時刻設定部702はsetTimeコマンド内の時刻に、中継機自身のReal-Time Clock306を設定する(ステップS1303)。その後、時刻設定要ノード管理部703において時刻設定テーブル311にて管理されている配下の子ノードの時刻設定要フラグ710を全てONにし(ステップS1304)、終了する(ステップS1305)。
【0059】
図14は中継機2のコマンド送信シーケンスを表す図である。中継機2は、センサノード3からコマンド要求であるPollingをコマンド要求受信部707にて受信すると、蓄積しているコマンドが存在するかを判定し(S1402)、コマンドが存在する場合はセンサノードに対しコマンド有りを送信する(ステップS1404)。その後、時刻設定状況確認部706において時刻設定要ノード管理テーブル311の該センサノードの時刻設定要フラグ710を確認し(ステップS1405)、該フラグがONの場合は時刻取得部705において中継機2のReal-Time Clock306より現在時刻を取得し(ステップS1406)、コマンド発行部708よりsetTimeコマンドを送信し(S1407)、該センサノードの時刻設定要フラグをOFFにし(ステップS1408)、他の蓄積しているコマンドがあるかを確認する(S1402)。時刻設定要フラグ710がOFFの場合、蓄積されている他のコマンドを送信し(S1409)、更に他の蓄積しているコマンドがあるかを確認する(S1402)。該センサノードに対する蓄積しているコマンドが無い場合、該センサノードに対しコマンド無しを送信(S1403)し、終了する(S1410)。
【0060】
図15は本実施例におけるセンサノード3の動作フローチャートである。
【0061】
センサノード3は一定間隔で起動状態に入る起動(S1501)と休眠状態に入る休眠(S1514)を繰り返す間欠動作を行っている。この起動間隔はセンサノードに複数のセンサ204が搭載されている場合、センサ毎に個別の間隔を設定することができる。センサノード3は起動すると図6に示した観測部602において観測(S1502)を行い、Polling発行部605よりPollingを発行し、親中継機2に対して送信部606よりPollingを送信する(S1503)。中継機2からの返戻を受信部610で受信し、コマンド有りか無しかの判断を行い(S1504)、コマンドが有りの場合は該コマンドを受信する(S1505)。コマンド解析部611において受信した該コマンドがsetTimeコマンドか否かを判定し(S1506)、setTimeコマンドの場合はRTC設定部609において自身のReal-Time Clock206の設定ないし修正を行い(S1507)、観測値テーブル613内の過去の観測値のうち、時刻未確定フラグがONの観測値のタイムスタンプを観測値タイムスタンプ補正部608にて補正する(S1508)。受信した該コマンドがsetTimeコマンドでは無い場合、他コマンド処理部612にて該コマンドの処理を行う(S1509)。
【0062】
コマンドの処理を終えると、センサノード3は自身が時刻設定済みであるかを判定し(S1510)、時刻設定済みである場合、現在時刻を観測値にタイムスタンプとして付与したイベントをイベント発行部604より発行し、送信部606より観測イベントを親中継機2ないし親基地局1へと送信する(S1512)。センサノード3が時刻設定済みでない場合においては、観測値は送信しないが、センサノード3の生存を知らせるため、親中継機2ないし親基地局1へHeartBeatイベントを送信する(S1511)。
【0063】
イベント送信後、センサノード3は観測値をシーケンス番号、時刻未確定フラグ、Real-Time Clockの時刻と共にメモリに蓄積し(S1513)、休眠する(S1514)。
【0064】
図16は、上述した図15におけるセンサノード3の観測値テーブル613のタイムスタンプ補正(S1508)を説明するための図である。同図(a)、(b)はそれぞれタイムスタンプ補正前後のセンサノード3中の観測値テーブル613内のデータの一例を示している。
【0065】
センサノード3は、親中継機2ないし親基地局1からsetTimeコマンドを受信し時刻設定を行ったタイミングで、最新の観測値のタイムスタンプとsetTimeコマンドの時刻の差分を算出する。その後、該センサノードの観測値テーブル613を参照し、時刻未確定フラグがONの観測値のタイムスタンプに、この差分を足し合わせることにより時刻を修正し、該時刻未確定フラグをOFFにすることで、観測値のタイムスタンプを補正する。
【0066】
前述の差分は、setTimeコマンド内の時刻と、setTimeコマンドを受信した時点でのReal-Time Clock206補正前の時刻との差分でも良い。また、タイムスタンプの補正のタイミングは、この差分の計算後、任意のタイミングで行うことができる。
【0067】
なお、センサノード3の送信部606より親中継機2ないし親基地局1へ送信された観測値データを含む観測イベントは、全て管理サーバ4に送信され、図5、図9の記憶部中の観測値蓄積部909に蓄積され、後でその具体例を詳述するように、適宜加工処理される。
【実施例2】
【0068】
次に第二の実施例として、図17に示す他の時刻同期方式を採用するセンサネットシステムを説明する。
【0069】
図17はセンサノード3(センサ)が基地局1へと直接接続している際に、センサノード3が要求したタイミングで時刻同期を実施するセンサノード主導型時刻設定シーケンスを示している。センサノード3は基地局1と接続時、あるいは定期的に基地局1に対し時刻設定要求(1701)を送信する。基地局1は該時刻設定要求の応答(Ack)1702を送信すると同時に、基準時刻情報を取得する(1703)。該基地局が該時刻設定要求を受信してから該時刻情報の取得に要する時間は、1ミリ秒程度である。
【0070】
センサノード3は該時刻設定要求への応答(Ack)を受信した時点で内部のタイマを起動する(1704)。基地局1が該応答を送信し、センサノード3が受信を行うまでの処理時間は1ミリ程度であるため、基地局1が時刻設定要求を受信し時刻を設定するのに要した時間と近似的に同じと見なすことができる。
【0071】
ここで、タイマとはセンサノード3の内部のマイコンに内蔵されているタイマで、例えばルネサステクノロジ社のH8S/2215の場合、時間精度は1ppmであるため、時刻設定による誤差は無視できる。しかし、割り込みにより時刻設定以外の処理を行う必要があるため、時間精度は10ミリ秒である。なお。休眠期間においては、マイコンは低電力モードで休眠しているが、タイマ動作は実行される。
【0072】
そして、センサノード3は次に起動した際にコマンド要求であるPollingコマンドを送信(1704)すると、基地局1は応答として、第2のsetTimeコマンドとして取得した時刻をセンサノード3に送信する(1705)。該センサノード3は該基地局1からの第2のsetTimeコマンドを受信した時点でタイマを停止し(1708)、第2のsetTimeコマンドと同時に受信した時刻にタイマにて計測した時間を足した時刻を、現在時刻として自分自身の時計であるReal-Time Clock206に設定する(1709)。
【0073】
この時刻設定により、基地局1と時刻同期した各センサノード3は、第一の実施例の図11に示したと同様、蓄積した観測値を観測イベントとして直接、基地局1へ送信するが、説明が重複するためここでは省略する。
【0074】
図18は、上述してきた時刻同期方式に基づくセンサノードシステムを用い、管理サーバ4が、その観測値蓄積部909にて蓄積した観測値データを用い、センサノードを装着する複数の人物間の影響力を求める応用システムの機能を説明する図である。図18(a)に示すように、2人以上の人物1801と人物1802が、センサノード3aと3bを所持・装着しているとする。例えば、人物1801と人物1802が対話中に人物1801の重要な発話に同意して、人物1802が首を縦に振ることや、人物1801の発話に同意してうなり声を上げる、発言を書き留めるといった何かしらのジェスチャを行うことは、人物1802は人物1801の影響を受けていると言える。また、相手が近づいてきたら立ち去るという、負の影響もある。これらの動作や発話はランダムではなく、図18(c)のブロック1803に示す通り、人物1801の加速度ないし音声の観測値波形による発話や動作の観測から1秒以内の遅延をして、人物1802の加速度ないし音声の観測値波形に現れる。
【0075】
このことから、図18(b)のセンサノード3間において、例えば100ms精度で同期されたセンサノード3a、3bのセンサ信号から対話者同士の時間軸における動作の相関を求めることにより、対話者同士の意思疎通を求めることができるため、センサノード3間の同期された観測値が重要となり、この同期方式として上述した時刻同期方式が採用される。よって、以下の応用システムの説明においては、上述した時刻同期方式が採用され、各センサノードは必要な精度の時刻同期を取ることとなる。
【0076】
図19a、図19b、図19cは、本応用システムにおいて意思疎通を求める処理を実行し、組織ダイナミクス解析を実行する処理の全体の流れを示す説明図である。
【0077】
具体的には、図19a、図19b、図19cは、複数のセンサノード3による組織ダイナミクスデータの取得から、組織アクティビティとして人物間の関係性と現在の組織の評価(パフォーマンス)を図示するまでの一連の流れを示す。
【0078】
本実施例では、組織ダイナミクスデータ取得(BMA)、パフォーマンス入力(BMP)、組織ダイナミクスデータ収集(BMB)、相互データ整列(BMC)、相関係数の学習(BMD)、組織アクティビティ解析(BME)及び組織アクティビティ表示(BMF)の各処理が適切な順序で実行される。
【0079】
まず、組織ダイナミクスデータ取得(BMA)について説明する。図19cに示すセンサノード3A(TRa)は、加速度センサ(TRAC)、赤外線送受信器(TRIR)、マイクロホン(TRMI)等のセンサ類、マイクロコンピュータ(図示省略)及び無線送信機能を有する。センサ類は、種々の物理量を検出し、検出された物理量を示す観測値データを取得する。例えば、加速度センサ(TRAC)は、センサノード3A(TRa)の加速度(すなわち、センサノード3A(TRa)を装着している人物A(図示省略)の加速度)を検出する。赤外線送受信器(TRIR)は、センサノード3A(TRa)の対面状態(すなわち、センサノード3A(TRa)が他のセンサノード3と対面している状態)を検出する。なお、センサノード3A(TRa)が他のセンサノード3と対面していることは、センサノード3A(TRa)を装着した人物Aが、他のセンサノード3を装着した人物と対面していることを示す。マイクロホン(TRMI)は、センサノード3A(TRa)の周囲の音声を検出する。センサノード3A(TRa)は、上記以外のセンサ(例えば、温度センサ、照度センサ等)を備えてもよい。
【0080】
本応用例のシステムは、複数のセンサノード3(図19cのセンサノード3A(TRa)〜センサノード3J(TRj)を備える。各センサノード3は、それぞれ、一人の人物に装着される。例えば、センサノード3A(TRa)は人物Aに、センサノード3B(TRb)は人物B(図示省略)に装着される。各センサノードを装着する人物(装着者)間の関係性を解析し、さらに、組織のパフォーマンスを図示するためである。
【0081】
なお、センサノード3B(TRb)〜センサノード3J(TRj)も、センサノード3A(TRa)と同様、センサ類、マイクロコンピュータ及び無線送信機能を備える。以下の説明において、センサノード3A(TRa)〜センサノード3J(TRj)のいずれにも当てはまる説明をする場合、及び、それらのセンサノード3を特に区別する必要がない場合、センサノード3(TR)と記載する。
【0082】
各センサノード3(TR)は、常時(又は短い間隔で繰り返し)センサ類によるセンシングを実行する。そして、各センサノード3(TR)は、取得したデータ(センシングデータ)を、所定の間隔で無線によって送信する。データを送信する間隔は、センシング間隔と同じであってもよいし、センシング間隔より大きい間隔であってもよい。このとき送信されるデータには、センシングした時刻と、センシングしたセンサノード3(TR)の固有のIDが付与されている。データの無線送信をまとめて実行するのは、送信による電力消費を抑えることによって、人が装着したままで、センサノード3(TR)の使用可能状態を長時間維持するためである。また、全てのセンサノード3(TR)において同一のセンシング間隔が設定されていることが、後の解析のためには望ましい。
【0083】
図19cに示すパフォーマンス入力(BMP)は、パフォーマンスを示す値を入力する処理である。ここで、パフォーマンスとは、何らかの基準に基づいて判定される主観的又は客観的な評価である。例えば、所定のタイミングで、センサノード3(TR)を装着した人物は、その時点における業務の達成度、組織に対する貢献度及び満足度等、何らかの基準に基づく主観的な評価(パフォーマンス)の値を入力する。所定のタイミングとは、例えば、数時間に一度、一日に一度、又は、会議等のイベントが終了した時点であってもよい。センサノード3(TR)を装着した人物は、そのセンサノード3(TR)を操作して、又は、クライアント(CL)のようなPC(Personal Computer)を操作して、パフォーマンスの値を入力することができる。あるいは、手書きで記入された値が後にまとめてPCで入力されてもよい。なお、入力されたパフォーマンス値は、相関係数を学習するために用いられる。このため、ある程度の学習を行うために十分な量のパフォーマンス値が取得できていれば、必ずしもさらに値を入力する必要はない。
【0084】
組織に関するパフォーマンスは、個人のパフォーマンスから算出されてもよい。売上高又はコスト等の客観的なデータ、及び、顧客のアンケート結果等の既に数値化されているデータが、パフォーマンスとして定期的に入力されてもよい。生産管理等におけるエラー発生率等のように、自動で数値が得られる場合、得られた数値が自動的にパフォーマンスの値として入力されてもよい。
【0085】
無線によって各センサノード3(TR)から送信されたデータは、図19cの組織ダイナミクスデータ収集(BMB)において収集され、データベースに格納される。例えば、センサノード3(TR)ごとに、言い換えるとセンサノード3(TR)を装着した人物ごとに、データテーブルが作成される。収集されたデータは、固有のIDに基づいて分類され、センシングされた時刻の順にデータテーブルに格納される。テーブルをセンサノード3(TR)ごとに作成しない場合、データテーブルの中にセンサノード3のID情報又は人物を示すカラムが必要になる。なお、図中のデータテーブルA(DTBa)は、データテーブルの例を簡略化して表現したものである。
【0086】
また、パフォーマンス入力(BMP)において入力されたパフォーマンスの値は、パフォーマンスデータベース(PDB)に時刻情報と共に格納される。なお、組織ダイナミクスデータ収集(BMB)で収集されるデータテーブル・データベースは、図5の記憶部に順次蓄積される。
【0087】
続いて、図19cに示す相互データ整列(BMC)では、任意の二人の人物に関するデータ(言い換えると、それらの人物が装着したセンサノード3(TR)が取得したデータ)を比較するために、時刻情報に基づいて二人の人物に関するデータが整列(アライアンス)される。整列されたデータは、テーブルに格納される。このとき、二人の人物に関するデータのうち、同じ時刻のデータが同じレコード(行)に格納される。同じ時刻のデータとは、同じ時刻に二つのセンサノード3(TR)によって検出された物理量を含む二つのデータである。二人の人物に関するデータが、同じの時刻のデータを含まない場合、最も近い時刻のデータが近似的に同じ時刻のデータとして使用されてもよい。この場合、最も近い時刻のデータが同じレコードに格納される。このとき、同じレコードに格納されたデータの時刻を、例えば、最も近い時刻の平均値によってそろえることが望ましい。なお、これらのデータは、時系列によるデータの比較ができるように格納されていればよく、必ずしもテーブルに格納されなくてもよい。
【0088】
なお、図19cの結合テーブル(CTBab)はデータテーブルA(DTBa)とデータテーブルB(DTBb)を結合したテーブルの例を簡略化して表現したものである。ただし、データテーブルB(DTBb)の詳細は、図示が省略されている。結合テーブル(CTBab)は、加速度、赤外線及び音声のデータを含む。しかし、データの種類ごとの結合テーブル、例えば、加速度データのみを含む結合テーブル、又は、音声のみの結合テーブルが作成されてもよい。
【0089】
続いて、本応用例では、組織ダイナミクスデータから関係性を計算したり、パフォーマンスを予測したりするために、相関係数の学習(BMD)を実行する(図19b参照)。
【0090】
相関係数の学習(BMD)は、意思疎通を求める処理である。例えば、対話中に相手の重要な発話に対して、首を縦に振るなどの何かしらのジェスチャを行なう場合が多い。これらの動作はランダムではなく、あるタイミングに沿って行なっている。そのタイミングとは、相手の発話やジェスチャをした直後である。
【0091】
このことから、センサノード3間において、同期された観測値であるセンサ信号から、センサノード装着者である対話者同士の時間軸における動作の相関を求めることにより、対話者同士の意思疎通を求めることができるため、センサノード3間の同期された観測値データが重要となること明らかである。
【0092】
対話者1801がセンサノード3a(センサ#1)を、対話者1802がセンサノード3b(センサ#2)を所有している。この時、基地局1から前記2台のセンサノードのそれぞれに対しsetTimeコマンドを送付し、例えば10ミリ秒(ms)以下の誤差にて同期を行う。図18では対話者は2名であるが、対話者が複数人いる場合もあり得る。この場合、全ての対話者の中から全員を網羅する組みを指定し、それぞれの組みに対して処理を行う。
【0093】
次に、図18のシステムを用いて相関係数の学習を行うための処理フローを図19bの相関係数の学習(BMD)に示す。このプロセスは、定期的に新規なデータを用いて計算し直すことによって相関係数を更新するとより効果的である。以下の説明は、加速度データから相関係数を算出する例である。しかし、加速度データの代わりに音声データ等の時系列データを用いても、同様の手順で相関係数を算出することができる。
【0094】
なお、本応用例では、図19bに示す相関係数の学習(BMD)は、先に図5、図9を用いて説明した管理サーバ4、特にその処理部(CPU)501によって実行される。しかし、実際には、相関係数の学習(BMD)は管理サーバ4以外の装置によって実行されてもよい。
【0095】
始めに、管理サーバ4は、相関係数を計算するために用いるデータの幅Tを数日から数週間程度に設定し、その期間のデータを選択する。
【0096】
次に、管理サーバ4は、加速度周波数計算(BMDA)を実行する。加速度周波数計算(BMDA)は、時系列に並んだ加速度データから周波数を求める処理である。周波数は、一秒間の波の振動数と定義され、つまり振動の激しさを表している指標である。しかし、正確な周波数を算出するにはフーリエ変換を行うことが必要であり、計算量に負担がかかる。フーリエ変換によって周波数を堅実に計算してもよいが、本応用例では、計算を簡略化するために、周波数に相当するものとして、ゼロクロス値を用いる。
【0097】
ゼロクロス値とは、一定の期間内における時系列データの値がゼロとなった回数、より正確には、時系列データが正の値から負の値へ、又は負の値から正の値へと変化した回数を計数したものである。例えば、加速度の値が正から負に変化してから、次にその値が再び正から負に変化するまでの期間を1周期とみなすと、計数されたゼロクロスの回数から、1秒間当たりの振動数を算出することができる。このようにして算出された一秒間当たりの振動数を、加速度の近似的な周波数として使用することができる。
【0098】
さらに、本応用例のセンサノード3(TR)は、三軸方向の加速度センサを備えているため、同じ期間の三軸方向のゼロクロス値を合計することによって一つのゼロクロス値が算出される。これによって、特に左右及び前後方向の細かい振り子運動を検出し、振動の激しさを表す指標として用いることができる。
【0099】
ゼロクロス値を計数する「一定の期間」として、連続したデータの間隔(つまり元のセンシング間隔)よりも大きな値が、秒又は分単位で設定される。
【0100】
分析に用いる観測値は、対話者1801および対話者1802で同じ時間幅が望ましく、例えば、1日(24時間)がある。さらに、観測値は、連続ないし周期的に値が代入されていることが望ましく、もし観測値が欠損している場合には、欠損を示す値、例えばNULLを代入する。
【0101】
フレーム化処理(BMDB)では、観測値の時間幅を単一的な幅に分割する処理である。例えば、1日(24時間)分の観測値時間幅の場合には、1時間程度が良い。分割の幅のサイズをフレーム長という。入力センサ信号は複数のセンサ信号あるが、フレームの分割するタイミングと幅(フレーム長)は全て同じである。
また、フレームとフレームとの間隔を必ずしもフレーム分割した時間に合わせる必要はない。例えば、フレームとフレームとの区間(フレーム区間)を6分とした場合には、最初のフレームの開始時間と次のフレームの開始時間の間隔が6分ということを意味している。
【0102】
次に、入力観測値をフレーム毎に相互相関係数を求める(BMDC)。相互相関は2つのセンサ信号の時間変化の相互関係を表す。二つの観測値の相互相関係数は、
【0103】
【数1】

のように定義する。
【0104】
さらに、相互相関係数を求める前に、相互相関係数の精度を高めるために、フレーム内に含まれる観測値の値をチェックする。相互相関処理に用いる同時期の2つのセンサ信号の両方とも欠損していない数を数え、欠損率を求め、欠損率が高いフレームの相互相関処理を行なわない。欠損率の閾値は別途指定することが可能である。
【0105】
最後に、相互相関係数では多数の値が出力されてしまうため、全体を俯瞰した値が必要となる。そこで、入力観測値におけるフレーム毎に求めた相互相関係数の平均を求めることで俯瞰処理BMDDを行い、相関Matrix(BMDE)を求める。次に、相関Matrix(BMDE)を用い、加速度データから6つのパフォーマンスが予測される。
【0106】
図19aに示された組織アクティビティ解析(BME)は、結合テーブルにおける任意の二人の人物に関する加速度、音声、対面等のデータから人物間の関係性を求め、さらに組織のパフォーマンスを計算する処理である。この処理も、基本的は管理サーバ4、特にその処理部(CPU)501によって実行される。
【0107】
これによって、データを取得しながらリアルタイムで組織のパフォーマンスを予測してユーザに提示し、悪い予測であれば良い方向に行動を変化させるように促すことができる。つまり短いサイクルでフィードバックすることが可能になる。
【0108】
図19aを用い、まず、加速度データを用いた計算について説明する。加速度周波数計算(EA12)、個人特徴量抽出(EA13)、人物間の相互相関計算(EA14)及び組織特徴量計算(EA15)は、それぞれ、相関係数の学習(BMD)における加速度周波数計算(BMDA)、個人特徴量抽出(BMDB)、相互相関計算(BMDC)及び組織特徴量計算(BMDD)と同様の手順であるため、これらの説明を省略する。これらの手順によって、組織特徴量(x1、…、xm)が算出される。
【0109】
そして、管理サーバ4は、ステップEA15において算出された組織特徴量(x1、…、xm)、及び、相関係数の学習(BMD)によって算出された各パフォーマンスに関する相関係数(A1、…、A6)を取得し(EA16)、これらを用いて各パフォーマンスの指標の値、
【0110】
【数2】

を算出する。この値が組織パフォーマンスの予測値となる(EA17)。
【0111】
後述するように、組織パフォーマンスを示す六つの指標の最新値が、バランス表示される。さらに、ある一つの指標の値の履歴が、指標予測履歴として時系列グラフとして表示される。
【0112】
また、人物間の相互相関値から求められる任意の人物間の距離(EK41)は、組織構造を表示するためのパラメータ(組織構造パラメータ)を決定するために用いられる。ここで、人物間の距離とは、地理的な距離ではなく、人物間の関係性を示す指標である。例えば、人物間の関係が強い(例えば、人物間の相互相関が強い)ほど、人物間の距離が短くなる。また、人物間の距離に基づいてグループ化(EK42)を実行することによって、表示におけるグループが決定される。
【0113】
グループ化とは、特に密接な関係にある少なくとも二人の人物AとBを一組のグループとし、また別の密接な関係にある少なくとも二人の人物CとDを一組のグループとし、さらにそれらの人物A、B、C及びDを大きなグループとするように、密接な関係にある人物同士の組を作るための処理を指す。
【0114】
なお、人物間の相互相関計算(EA14)から任意の人物間における関係性の距離を求め(EK41)、その距離を表示する方法の一例については後述する(図8参照)。
【0115】
次に、赤外線データに基づく計算について説明する。赤外線データには、いつ、誰と誰が対面したかを示す情報が含まれている。管理サーバ4は、赤外線データを用いて対面履歴を分析する(EI22)。そして、管理サーバ4は、対面履歴に基づいて、組織構造を表示するためのパラメータを決定する(EK43)。このとき、管理サーバ4は、対面履歴から任意の人物間の距離を算出し、その距離に基づいてパラメータを決定してもよい。例えば、二人の人物が所定の期間に対面した回数が多いほど、それらの人物間の距離が短く(すなわち、関係が強く)なるように、距離が算出される。
【0116】
例えば、管理サーバ4は、一人の人物における全対面回数の合計をノードの大きさに反映させ、人物間の短期的な対面回数をノード間の距離に反映させ、任意の人物間の長期的な対面回数をリンクの太さに反映させるようにパラメータを決定してもよい。ここでノードとは、クライアント(CL)のディスプレイ(CLOD)に、各人物を示すために表示される図形である。リンクとは、二つのノード間を結合するように表示される線である。その結果、現在までに、相手が誰であれ、多くの人物と対面している人物ほど、大きいノードによって表示される。最近多く対面している人物の組み合わせほど、近接した二つのノードによって表示される。長期にわたって多く対面している人物の組み合わせほど、太いリンクによって結合された二つのノードによって表示される。
【0117】
また、管理サーバ4は、センサノード3を身に着けているユーザの属性情報を組織構造の表示に反映させることができる。例えば、人物の年齢によって、その人物を示すノードの色を決定してもよいし、役職によってノードの形を決定してもよい。
【0118】
次に、音声データに基づく計算について説明する。既に説明したように、音声データを加速度データの代わりに用いることによって、加速度データを用いた場合と同様、人物間の相互相関を算出することもできる。しかし、音声データから音声の特徴量を抽出し(EV32)、その特徴量を対面データと合わせて解析することで、会話特徴量を抽出することもできる(EV33)。会話特徴量とは、例えば、会話における声のトーン、やり取りのリズム又は会話のバランスを示す量である。会話のバランスとは、二人の人物の一方が一方的に話しているのか、二人が対等にやり取りしているのか、を示す量であり、二人の人物の声に基づいて抽出される。
【0119】
例えば、管理サーバ4は、その会話のバランスがノード間の角度に反映されるように表示のパラメータを決定してもよい。具体的には、例えば、二人が対等に会話している場合、その二人を示すノードが水平に表示されてもよい。二人のうち一方が話すばかりである場合、話している人物を示すノードが、もう一方の人物のノードより上方に表示されてもよい。一人が一方的に話す傾向が強いほど、二人の人物を示すノードを結ぶ線と基準線とがなす角度(図19の組織構造表示(FC31)の例において、角度θAB又はθCD)が大きくなるように表示されてもよい。ここで基準線とは、例えば、ディスプレイの横方向(すなわち水平方向)に設定される線である。基準線はディスプレイに表示されなくてもよい。
【0120】
組織アクティビティ表示(BMF)は、以上に説明した処理によって計算された組織パフォーマンス予測及び組織構造パラメータから、指標バランス表示(FA11)、指標予測履歴(FB21)及び組織構造表示(FC31)等を作成し、それらをクライアント(CL)のディスプレイ(CLOD)等に表示する処理である。
【0121】
図19aの組織アクティビティ(FD41)は、クライアント(CL)のディスプレイ(CLOD)に表示される画面の一例である。
【0122】
図19aの例では、はじめに、選択された表示期間、及び、表示したいユニット又は複数のメンバーが表示される。ここで、ユニットとは、複数の人物からなる組織を意味する。一つのユニットに属するメンバー全員が表示されてもよいし、ユニットの一部である複数のメンバーが表示されてもよい。図19aの例では、上記の表示期間及びユニット等に示される条件に基づいて解析された結果が、三種類の図として表示される。
【0123】
指標予測履歴(FB21)の図では、例として「成長」のパフォーマンスの予測結果の履歴を表している。これによって、メンバーのどのような行動が組織の成長にプラスとなるのか、さらに、マイナスからプラスに転換させるには何が効果的なのか、を過去の行動履歴と照らし合わせて分析することが可能となる。
【0124】
組織構造表示(FC31)では、組織を構成する小グループの状況、各人物が組織において実質担っている役割、及び、任意の人物間のバランス等が可視化される。
【0125】
指標バランス表示(FA11)は、設定された6つの組織パフォーマンス予測のバランスを示す。これによって、現在の組織の長所と短所を見極めることができる。
【実施例3】
【0126】
続いて、時刻同期方式を用いたセンサネットシステムの第三の実施例を説明する。
【0127】
図20は、センサネットネットシステムを用いて地震の震源2001を検知する応用システムである。地震による震源位置特定の手法として、グリッドサーチ法(例えば、非特許文献2参照。)が用いられる。グリッドサーチ法を用いて100m以下の精度で震源位置を特定する場合、加速度センサまたは振動センサを持つセンサノードが3台以上必要であり、各センサノードを100m間隔で配置し、20ミリ秒の精度で時刻同期を行う必要がある。
【0128】
図21は、センサネットシステムを用いて配管の振動を観測するシステムである。該センサネットシステムを用いて配管2101を伝わる波動2102の位相差を算出することにより、配管を伝わる波動の節および腹の位置を算出する。これにより、波動の発生位置の特定や、応力の計算を行うことができる。以上のことを実現するためには、配管を200Hzで伝播する波動の位相差を知る必要があり、各センサノードを数ミリ秒の精度で時刻同期を行う必要がある。
【0129】
この様なシステムの時刻同期精度を実現する時刻同期方式の第三の実施例を述べる。
【0130】
図22はセンサノード3が中継機2を経由して基地局1へとマルチホップで接続している際、時刻のずれを低減する第三の実施例の時刻同期方式を説明するシーケンス図である。
【0131】
基地局は自身のReal-Time Clock406より時刻t1を取得し(2201)、中継機に対しt1を送信する。中継機は前記時刻t1を受信すると、直ちに自身のReal-Time Clock306より時刻t2を取得し(2202)、t2とt1の差分(ΔT1 = t2 - t1 )を計算する(2203)。次に、該中継機は自身のReal-Time Clock306より時刻t3を取得し(2204)、前記ΔT1とt3を基地局へと送付する。ΔT1およびt3を受信した前記基地局は、直ちに自身のReal-Time Clock406より時刻t4を取得し(2205)、前記ΔT1とt3とt4を用いて遅延( 2×Δt = t4 t3 + ΔT1)を計算する(2206)。以上により計算したΔtが、基地局および中継機の時刻設定時の遅延である。前記遅延Δtが測定毎に変化する場合、Δtを複数回測定して平均を算出することにより、精度を向上させることができる。中継機に中継機が接続している場合には、該中継機間で遅延の算出を行っても良い。
【0132】
次に、基地局は定期的あるいはユーザが指定したタイミングにおいて、自身のReal-Time Clock406より時刻を取得し(2207)、setTimeコマンドを送信する(2208)。この時、自身のReal-Time Clock406より取得した現在時刻t5と遅延Δtを同時にsetTimeコマンドとして送信する。該setTimeコマンドを受信した中継機は、setTimeコマンドに含まれる該時刻t5および遅延Δtの差分( T2 = t5 Δt )を用いて自身のReal-Time Clockを設定ないし修正する(2209)。該中継機は、センサノードからのPolling(2210)を受信したタイミングにおいて、該中継機のReal-Time Clockより時刻t6を取得し(2211)、該時刻t6および遅延ΔtをsetTimeコマンドとして送信する(2212)。該setTimeコマンドを受信した該センサノードは、該時刻t6と遅延Δtの差分(T3 = t6 Δt)を用いて自身のReal-Time Clockを設定ないし修正を行う。
【0133】
本手法による遅延の要因は、基地局および中継機のファームウェアがReal-Time Clockより時刻を取得しRF Transceiverにて送信するまでの処理時間、およびRF Transceiverにてデータを受信してからReal-Time Clockより時刻を取得するまでの処理時間であり、前期処理内に割り込み処理が入らない場合は数10ミリ秒程度である。基地局と中継機とセンサノードのReal-Time Clockと、マイコンと、RF Transceiverにて同じ回路を使用している。従って、中継機とセンサノード間の遅延は、基地局と中継機間の遅延と同じであると見なして良い。
【0134】
基地局に中継機が複数接続している場合、基地局と全ての中継機間で同様の遅延Δtの算出を行い、平均を算出することにより、個体差による遅延のばらつきを低減することができる。
【0135】
無線によるデータ送信が成功しない場合、送信時間間隔が数ミリ秒で3回まで再送を繰り返す。したがって、本手法による誤差は、無線再送による誤差であり、数ミリ秒から10ミリ秒程度である。
【0136】
メッシュ型マルチホップのセンサネットの特長として、通信経路を自由に選択することができる。これを利用し、遅延の多い経路を回避して時刻設定を行うことで、時刻精度を向上することができる。具体的には、前記遅延Δtを中継機が記憶しておき、中継機がsetTimeコマンドを受信する度にΔtの分散σΔtを算出する。該σΔtは、通信コストと見なすことができる。時刻設定の際は、該σΔtの低い経路を優先的に使用し時刻設定を行うことで、高精度な時刻設定を行うことができる。
【0137】
以上、本発明の各実施例によれば、センサノードは間欠動作を維持したまま時刻合わせを行うことができ、また、中継機の時刻が基準時刻と同期している場合にのみ時刻合わせを行うため、時刻のずれを最小限に抑えることができ、且つ無駄な待機時間を削減でき、結果的に消費電力の低減、特に、センサノードが電池駆動の場合はその電池寿命を延ばすことが可能となる。
【図面の簡単な説明】
【0138】
【図1】第一の実施例のセンサネットの全体システム構成を示す図。
【図2】第一の実施例のセンサノードのハードウェア構成を示したブロック図。
【図3】第一の実施例の中継機のハードウェア構成を示したブロック図。
【図4】第一の実施例の基地局のハードウェア構成を示したブロック図。
【図5】第一の実施例の管理サーバのハードウェア構成を示したブロック図。
【図6】第一の実施例のセンサノードの機能構成を示した機能ブロック図。
【図7】第一の実施例の中継機の機能構成を示した機能ブロック図。
【図8】第一の実施例の基地局の機能構成を示した機能ブロック図。
【図9】第一の実施例のセンサネット管理サーバの機能構成を示した機能ブロック図。
【図10】第一の実施例による中継機とノードの時刻合わせシーケンス図。
【図11】第一の実施例による複数ノードの場合の時刻設定シーケンス図。
【図12】第一の実施例の中継機の動作シーケンスを表すPAD図。
【図13】第一の実施例の中継機のReal-Time Clockを設定するフローチャート図。
【図14】第一の実施例の中継機のコマンド送信時のフローチャート図。
【図15】第一の実施例のセンサノードの動作時のフローチャート図。
【図16】第一の実施例のセンサノードの観測値テーブルの時刻修正を示す図。
【図17】第二の実施例におけるセンサネットシステムの時刻設定シーケンス図。
【図18】実施例のセンサノード間の時刻同期の機能を説明する図。
【図19a】実施例の時刻同期方式を用いたセンサノードシステムの応用例である、人物間の影響力を求める機能を実現するためのシステム構成図。
【図19b】実施例の時刻同期方式を用いたセンサノードシステムの応用例である、人物間の影響力を求める機能を実現するためのシステム構成図。
【図19c】実施例の時刻同期方式を用いたセンサノードシステムの応用例である、人物間の影響力を求める機能を実現するためのシステム構成図。
【図20】実施例の時刻同期方式を用いたセンサノードシステムの応用例である、震源特定を行うためのセンサネットシステム構成図。
【図21】実施例の時刻同期方式を用いたセンサノードシステムの応用例である、配管の振動観測のためのセンサネットシステム構成図。
【図22】第三の実施例における時刻設定シーケンス図。
【符号の説明】
【0139】
1…基地局、2…中継機、3…センサノード、4…管理サーバ、311…時刻設定要ノード管理テーブル、710…時刻設定要フラグ、1001…基準時刻、1005…時刻取得、1007…Polling、1010…時刻合わせ(setTime)、1012、1013、1015…休眠期間、1006、1014…起動期間、1301…時刻設定。

【特許請求の範囲】
【請求項1】
基地局と、前記基地局と無線で接続している中継機と、前記基地局ないし前記中継機と無線で接続するセンサノードとからなり、前記基地局および前記中継機が常時動作し、前記センサノードが間欠動作をするセンサネットシステムであって、
前記中継機は、
前記基地局と前記中継機と前記センサノードが持つ時計の時刻設定をする場合、前記センサノードからコマンド送信要求されたタイミングにおいて、前記中継機の最新時刻に基づく時刻設定コマンドを、前記コマンド送信要求した前記センサノードに送信し、
前記センサノードは、前記中継機の前記最新時刻を受信した際、前記中継機の前記最新時刻に基づき時刻設定を行う
センサネットシステム。
【請求項2】
請求項1記載のセンサネットシステムであって、
前記基地局は、
複数の前記中継機および前記センサノードを配下に持ち、配下の前記中継機及び前記センサノードを管理する管理テーブルを有し、
ネットワークを介して接続された管理サーバからの時刻設定コマンドを受信すると、前記管理テーブルを参照し、配下の前記中継機全てに対して直ちに時刻設定コマンドを展開することにより前記中継機の時刻同期を行う
センサネットシステム。
【請求項3】
請求項1記載のセンサネットシステムであって、
前記中継機は、
配下の全ての前記センサノード毎に対応した時刻設定要フラグを保持する記憶部を有し、
前記基地局からの時刻設定コマンドを受信し、前記中継機の前記最新時刻を設定したタイミングで、前記記憶部に保持する前記時刻設定要フラグをオン状態にし、
前記センサノードから前記コマンド送信要求を受信した時に、前記時刻設定要フラグのオン・オフ状態を確認し、前記時刻設定要フラグがオン状態の場合のみ、前記コマンド送信要求を送信した前記センサノードに、前記中継機の前記最新時刻に基づく前記時刻設定コマンドを送信し、
当該時刻設定コマンドの返戻を受信したタイミングで前記記憶部に保持された前記時刻設定フラグをオフ状態にする
センサネットシステム。
【請求項4】
請求項2記載のセンサネットシステムであって、
前記中継機は、
配下の全ての前記センサノード毎に対応した時刻設定要フラグを保持する記憶部を有し、
前記基地局からの前記時刻設定コマンドを受信し、前記中継機の前記最新時刻を設定したタイミングで、前記記憶部に保持する前記時刻設定要フラグをオン状態にし、
前記センサノードから前記コマンド送信要求を受信した時に、前記時刻設定要フラグのオン・オフ状態を確認し、前記時刻設定要フラグがオン状態の場合のみ、前記コマンド送信要求を送信した前記センサノードに、前記中継機の前記最新時刻に基づく前記時刻設定コマンドを送信し、
当該時刻設定コマンドの返戻を受信したタイミングで前記記憶部に保持された前記時刻設定フラグをオフ状態にする
センサネットシステム。
【請求項5】
請求項3記載のセンサネットシステムであって、
前記センサノードは、
前記中継機からの前記時刻設定コマンドに基づき設定された前記センサノードの最新時刻に基づき、保持する観測値に時刻を付与した後、前記中継機に当該観測値を送信する
センサノードシステム。
【請求項6】
請求項4記載のセンサネットシステムであって、
前記センサノードは、
前記中継機からの前記時刻設定コマンドに基づき設定された前記センサノードの最新時刻に基づき、保持する観測値に時刻を付与した後、前記中継機に当該観測値を送信する
センサノードシステム。
【請求項7】
請求項5記載のセンサネットシステムであって、
前記センサノードは、
前記観測値を前記中継機に送信後、前記時刻が付与された前記観測値を前記センサノードの記憶部に記憶した後、前記間欠動作の休眠状態となる
センサネットシステム。
【請求項8】
請求項6記載のセンサネットシステムであって、
前記センサノードは、
前記観測値を前記中継機に送信後、前記時刻が付与された前記観測値を前記センサノードの記憶部に記憶した後、前記間欠動作の休眠状態となる
センサネットシステム。
【請求項9】
請求項5記載のセンサネットシステムであって、
前記基地局にネットワークを介して接続され、前記ネットワークに接続する通信部、処理部、及び記憶部から構成される管理サーバを更に有し、
前記管理サーバは、
前記中継機が受信した前記観測値を前記基地局経由で受信し、前記記憶部の観測値蓄積部に蓄積する
センサノードシステム。
【請求項10】
請求項6記載のセンサネットシステムであって、
前記管理サーバは、
前記ネットワークに接続する通信部、処理部、及び記憶部から構成され、
前記中継機が受信した前記観測値を前記基地局経由で受信し、前記記憶部の観測値蓄積部に蓄積する
センサノードシステム。
【請求項11】
請求項9記載のセンサネットシステムであって、
前記管理サーバの前記処理部は、
前記観測値蓄積部に記憶された、第1の前記センサノードから送信された前記観測値、及び第2の前記センサノードから送信された前記観測値に基づいて、第1の前記センサノードを装着した第1の装着者と、第2の前記センサノードを装着した第2の装着者との間の影響力を算出する
センサネットシステム。
【請求項12】
請求項10記載のセンサネットシステムであって、
前記管理サーバの前記処理部は、
前記観測値蓄積部に記憶された、第1の前記センサノードから送信された前記観測値、及び第2の前記センサノードから送信された前記観測値に基づいて、第1の前記センサノードを装着した第1の装着者と、第2の前記センサノードを装着した第2の装着者との間の影響力を算出する
センサネットシステム。
【請求項13】
請求項11記載のセンサネットシステムであって、
第1、第2の前記センサノードは、それぞれ加速度センサを有し、
第1、第2の前記センサノードは、前記加速度センサの出力データを前記観測値として送信し、
前記管理サーバの前記処理部は、
前記加速度センサの出力データに基づき、第1、第2の前記装着者の動作の相関を求めることにより、前記影響力を算出する
センサネットシステム。
【請求項14】
請求項12記載のセンサネットシステムであって、
第1、第2の前記センサノードは、それぞれ加速度センサを有し、
第1、第2の前記センサノードは、前記加速度センサの出力データを前記観測値として送信し、
前記管理サーバの前記処理部は、
前記加速度センサの出力データに基づき、第1、第2の前記装着者の動作の相関を求めることにより、前記影響力を算出する
センサネットシステム。
【請求項15】
基地局と、前記基地局と無線で接続しているセンサノードとからなり、前記基地局が常時動作し、前記センサノードが間欠動作をしているセンサネットシステムであって、
前記センサノードは、
定期的、或いは前記基地局に接続したタイミングで時刻要求コマンドを発行し、前記基地局から前記時刻要求コマンドに対する返戻を受信した時点で、内部のタイマを起動し、
前記基地局は、
前記センサノードからの前記時刻要求コマンドを受信した時点で基準時刻を取得し、前記センサノードから次にコマンド送信要求を受信した時点で、前記基準時刻を前記センサノードに送信し、
前記センサノードは、
前記基準時刻を受信した時点で前記タイマを停止し、タイマ停止時刻とタイマ起動時刻の差分から前記タイマの起動時間を算出し、前記基地局から受信した前記基準時刻に前記タイマ起動時間を足すことで時刻設定を行う
センサネットシステム。
【請求項16】
請求項15記載のセンサネットシステムであって、
前記センサノードは、
前記時刻設定の後、前記センサノードが蓄積した観測値を前記基地局に送信する
センサネットシステム。
【請求項17】
請求項16記載のセンサネットシステムであって、
前記基地局にネットワークを介して接続され、前記ネットワークに接続する通信部、処理部、及び記憶部から構成される管理サーバを更に有し、
前記管理サーバは、
前記基地局が受信した前記観測値を前記基地局から受信し、前記記憶部の観測値蓄積部に蓄積する
センサノードシステム。
【請求項18】
請求項17記載のセンサネットシステムであって、
前記管理サーバの前記処理部は、
前記観測値蓄積部に記憶された、第1の前記センサノードから送信された前記観測値、及び第2の前記センサノードから送信された前記観測値に基づいて、第1の前記センサノードを装着した第1の装着者と、第2の前記センサノードを装着した第2の装着者との間の影響力を算出する
センサネットシステム。
【請求項19】
常時動作する基地局と無線で接続し、間欠動作を行うセンサノードであって、
処理部と、記憶部と、無線送受信部と、リアル・タイム・クロックとを有し、
前記処理部は、
定期的、或いは前記基地局に接続したタイミングで時刻要求コマンドを発行し、前記基地局から前記時刻要求コマンドに対する返戻を受信した時点で、タイマを起動し、
前記時刻要求コマンドを発行した後、次にコマンド送信要求を前記基地局に送信した際、前記センサノードからの前記時刻要求コマンドを受信した時点で前記基地局が取得した基準時刻を受信し、
前記基準時刻を受信した時点で前記タイマを停止し、タイマ停止時刻とタイマ起動時刻の差分から前記タイマの起動時間を算出し、前記基準時刻に前記タイマ起動時間を足すことで前記リアル・タイム・クロックの時刻設定を行う
センサノード。
【請求項20】
請求項19記載のセンサノードであって、
前記処理部は、
低消費電力モードで動作可能なタイマを内蔵するマイクロプロセッサであり、前記マイクロプロセッサが内蔵する前記タイマを、前記起動時間が算出される前記タイマとして用いる
センサノード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19a】
image rotate

【図19b】
image rotate

【図19c】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2008−306472(P2008−306472A)
【公開日】平成20年12月18日(2008.12.18)
【国際特許分類】
【出願番号】特願2007−151866(P2007−151866)
【出願日】平成19年6月7日(2007.6.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】