タスクB:センサデータの解析・利用技術

慶應-三菱 研究成果報告会
• 研究のゴール
– フェデレイテッドセンサネットワーク
– 多様な無線センサノードと多様なユーザ機器を混合し
たネットワークを応用したユーザ支援
• 被災地における隊員を支援するシステム
– センサノード上で被災地の危険度を検知して救助隊員を支援
• ビル空調制御システム
• タスクA
– 異種ネットワークとのシームレスな連合技術
• タスクB
– センサデータの解析・利用技術
研究成果報告会
タスクB:センサデータの解析・利用技術
アウトライン
• 目標
• PIMSANの概要
目標
• 複数のセンサデータから人や環境の状態を検知
– ベイジアンネットを用いた確率推論による解析モデルを利用
– センサネットワーク切断時の耐故障性の実現
• 応用システムへの適用
– 被災地での隊員支援システム
• 被災地の状況の変化をネットワーク側が自律的に判断
• ネットワーク切断時にも被災地の情報を隊員に提供
– ビル空調制御システム
ベイズ推論
センシング
情報の解析
生活・行動支援
アクチュエーション
提案手法:センサノードによるサーバ機能の代替
•
•
•
サーバからノードへ、データ解析機能を一部委譲する自律分散型の解析
サーバは、ノードへ解析のための基本情報を提供
ノードは、サーバから配布された情報をもとに、周囲のノードと協調しながらセンサ情
報を自律的に解析、アクチュエータを動作させる
• サーバと通信不能でも解析可能
• センサとアクチュエータのシームレスな接続を実現
制御信号
グループA
データ
部分的な
機能委譲
センサノード
グループB
解析
基本情報
の配布
サーバ
制御信号
センサノードから
直接制御
アクチュエータ
PIMSAN: Probabilistic Inference Mechanism for
Sensor-Actuator Networks
•
ハイブリット確率推論方式を用い、基幹サーバと切断したセ
ンサノードがベイジアンネットワークを用いた推論、制御を実
行する機構
1. 基幹サーバ側
– コンテキストのモデル化と推論
– 事後確率分布の圧縮
2. センサノード側
– 切断、再接続の検知
– コンテキストの検知とアクチュエーション
PIMSAN: 基幹サーバ側
–
–
Trigger
Compaction
コンテキストのモデル化と推論
• 事後確率を計算する
事後確率分布の圧縮
• センサノードに圧縮した事後確率
分布を送信する
Delegation
Posterior probability
distribution
B
A
C
Bayesian inference
Working
true
false
Temperature
Lights
dark
bright
0
1
cold
warm
0
1
Movement
0
1
cold
warm
Time
Sound
0
1
cold
warm
0
1
cold
warm
0
1
Context modeling using
Bayesian network
Backbone Sink node
server
D
Sensor node
E
Actuator node
PIMSAN: センサノード側
–
–
グループの構築とデータの収集
コンテキストの検知とアクチュエーション
•
取得したセンサデータが事後確率分布と一致する
かを調べるだけなので、計算コストが不要
Trigger
B
Posterior probability
distribution
A
Group
C
Disconnection
Context inference
Working
true
false
Temperature
Lights
dark
bright
0
1
cold
warm
0
1
Movement
0
1
cold
warm
Time
Sound
0
1
cold
warm
0
1
cold
warm
0
1
Context modeling using
Bayesian network
Backbone Sink node
server
D
Sensor node
E
Actuator node
コンテキストのモデル化 (1)
センシング
•
抽象度に応じてデータを次の3段階に分ける
1. センサデータ
2. 下位コンテキスト: ex. “dark” and “bright”
•
センサデータに1つ以上の閾値を設定して離散化したもの
3. 上位コンテキスト: ex. “Meeting” and “Working”
•
下位コンテキストの集合としてモデル化したもので、環境や人の
状態を表す
コンテキストのモデル化(2)
“Working” コンテキスト
• 「仕事をしている」という上位コンテキストをモデ
ル化したベイジアンネットワークの例
• Working は、Lights, Temperature, Movement,
Sound, Time の5つに影響を与えている
上位コンテキスト
Working
true
false
0
1
下位コンテキスト
Temperature
Lights
dark
bright
0
1
cold
warm
Movement
0
1
cold
warm
Time
Sound
0
1
cold
warm
0
1
cold
warm
0
1
32(2^5)
コンテキストのモデル化(3)
事後確率分布
下位コンテキストの
組み合わせ
• 下位コンテキストの各組
み合わせにおける上位コ
ンテキストの事後確率分
布は、ベイズ確率推論に
よって求める
上位コンテキストの
周辺確率
周辺確率分布配送時の問題
• 周辺確率分布をセンサノードへ送ろうとするとO(2^
n)のデータ量が必要になる (nは下位コンテキスト
の数)
B
TOO BIG
Posterior probability
distribution
A
Delegation
Backbone Sink node
server
C
D
Sensor node
E
Actuator node
周辺確率分布の圧縮
• 組み合わせインデックス
• インデックスの選択送信
CI
TRUE
0 (00000)
0.61
1 (00001)
0.07
2 (00010)
0.2
4 (00100)
0.03
8 (01000)
0.3
15 (01111)
0.05
16 (10000)
0.92
23 (10111)
0.08
27 (11011)
0.88
29 (11101)
0.16
30 (11110)
0.08
31 (11111)
0.03
Small enough
B
Selective indices
transmission
A
Delegation
C
Combination indexing
Posterior probability
distribution
Backbone Sink node
server
D
Sensor node
E
Actuator node
組み合わせインデックス (1)
• 各コンテキストに番号をつける
– (ex. Working を 0 とする)
• コンテキストの値を数値化する
– (ex. dark を0、 bright を1 とする )
Working
true
false
Temperature
Lights
dark
bright
0
1
cold
warm
0
1
Movement
0
1
cold
warm
Time
Sound
0
1
cold
warm
0
1
cold
warm
0
1
組み合わせインデックス(2)
インデックスへの割り当て
• 組み合わせの値に対応する数をまとめる
ことで、事後確率分布の各組み合わせをイ
ンデックスに割り当てる
dark, cold, stable, calm, day
0
0
0
0
0
• 上の組み合わせの場合、5-bitのバイナリ
インデックス 00000となる
組み合わせインデックス
CI
TRUE
0 (00000)
0.61
1 (00001)
0.07
2 (00010)
0.2
4 (00100)
0.03
8 (01000)
0.3
インデックスの選択送信(1)
CI
TRUE
0 (00000)
0.61
1 (00001)
0.07
2 (00010)
0.2
4 (00100)
0.03
8 (01000)
0.3
15 (01111)
0.05
16 (10000)
0.92
23 (10111)
0.08
27 (11011)
0.88
29 (11101)
0.16
30 (11110)
0.08
31 (11111)
0.03
16 (10000)
0.92
27 (11011)
0.88
インデックスの選択送信(2)
• 上位コンテキストの真となる確率が、任意に定めた閾
値よりも高い列のみを選択しセンサノードへ送信する
CI
TRUE
0 (00000)
0.61
1 (00001)
0.07
2 (00010)
0.2
4 (00100)
0.03
8 (01000)
0.3
15 (01111)
0.05
16 (10000)
0.92
23 (10111)
0.08
27 (11011)
0.88
29 (11101)
0.16
30 (11110)
0.08
31 (11111)
0.03
number of rows to send
閾値が0.8の場合、2エントリのみを送信すればよい
threshold
グループの構築とデータの収集
• センサノードをグループ
に分割
– 静的なグループを想定
• グループヘッドがデータ
を収集
– グループヘッドが故障し
た場合、新たなヘッドを
選出
• グループ毎にベイズモ
デルを適用
クラスタ
コンテキストの検知とアクチュエーション
必要な情報
• 事後確率分布
• 下位コンテキストに離散化するためのセンサ
データの閾値
• 上位コンテキスト毎のアクチュエーションのため
の情報
– アクチュエーショントリガー
– 宛先
頻繁な更新の必要はない
コンテキストの検知とアクチュエーション
動作手順
•
グループヘッドは必要に応じて現状のコンテキストを
検出する
1. 取得した最新のセンサデータを下位コンテキストに
変換する
2. 組み合わせインデックスを求める
3. サーバから与えられた組み合わせインデックスと
比較する
4. 組み合わせインデックスが一致すれば、定められ
たアクチュエーションを実行する
関連研究
•
コンテキストアウェアアプリケーション
– センサ情報からのコンテキストの取り方、コンテキストのモデル化手法に焦点
• G. Chen and D. Kotz, “A survey of context-aware mobile computing research,” Technical
Report TR2000-381, Dept. of Computer Science, Dartmouth College, Nov. 2000.
• Donald J. Patterson, Lin Liao, Dieter Fox, and Henry Kautz, “Inferring high-level
behavior from low-level sensors,” in Proc. of Ubicomp 2003, Oct. 2003.
• F. Sparacino, “Sto(ry)chastic: a bayesian network architecture for user modeling and
computational storytelling for interactive space,” in Proc. of Ubicomp 2003, Oct. 2003.
– ネットワーク切断に対する対応が考えられていない
•
ネットワークの切断性
– Delay-Tolerant Network
• K. Fall, “A Delay-Tolerant Network Architecture for Challenged Internets,” in Proc. of
ACM SIGCOMM 2003, Aug. 2003.
– Message Ferry
• W. Zhao, M. Ammar and E. Aegura, “A Message Ferry Approach for Data Delivery in
Sparse Mobile Ad Hoc Networks,” in Proc. of ACM MobiCom’04, pp. 187-198, Sep.
2004.
– アクチュエーションの即応性がもとめられるため、接続時にデータを宛先に送る
だけでは不十分
応用システムへの適用:
空間の環境情報測定によるビル空調制御
•
•
現状の空調は、吸い込み口にある単一のセンサで温度、湿度を計測し動作
部屋の温度のムラに対応していない
– 上の方は暑いが下の方は寒い
– 空調の近くは寒いが奥の方は暑い
ORF 2007 におけるデモ展示
• SFC Open Research Forum 2007
– 日程: 2007年11月22日, 23日
– 場所:六本木アカデミーヒルズ40
デモシステムの構成
ノード間通信
センサノード
デモ用空調室内機
制御命令送信
ゲートウェイ
ノード
RS-232C
LAN
アプリケーション
ゲートウェイ
空調NW
空調コントローラ
空調シミュレータ
空間の分割
デモ用空調室内機
空間
高さ
高
上エリア
上エリア代表ノード
兼空間代表ノード
下エリア
下エリア代表ノード
低
デモシナリオ
• ゲートウェイノードから各ノードへ、温度状況に対応した
制御方法を配布
– 制御方法は予め設定済み
– 配布する制御方法をいくつか選択できる(option)
• 温度測定空間を一つのエリアとして、そのエリアを代表す
る空間代表ノードを設定(予め設定)
• 空間代表ノードは、他のノードから温度情報を収集し、空
間の代表温度を計算
• 空間代表ノードは計算した情報と、配布された制御方法
から制御命令を生成し、空調コントローラへ送信(アプリ
ケーションゲートウェイ経由)
– 設定温度制御
– 風向制御
各制御概要
• 設定温度制御
– 空間代表ノードが空間の代表温度を計算
– 空間代表ノードが室内機の吸い込み口温度を取得
– 指定温度、代表温度、吸い込み口温度から適切な設
定温度を決定
• 風向制御
– 空間を更にサブエリアに分割(空間の上方向、下方向
の2エリア程度。予め設定)
– サブエリアごとに代表ノードを設定(予め設定)
– サブエリア代表ノードは自サブエリアの代表温度を計
算し、空間の代表温度と大きく差異がある場合は自サ
ブエリアに風向きが向くよう制御(上下の2段階程度)
デモビデオ
来場者のコメント
•
•
•
•
•
•
コストについて
電源について
空調間の連携について
グループの組み方について
人を対象にしないのか?
環境情報は気温だけか?
– 明るさ
– 二酸化炭素濃度
• セキュリティ
• モデルについて
環境シミュレータを用いた評価
環境設定
m2
•
•
•
•
•
•
7×7×3 の部屋、中央に5mの壁
床面に、人体とOA機器の熱負荷を設定
部屋の下部にサーバラックを設置
部屋左側上部から1m/s,16℃の風を送風
初期温度 30℃
上部と下部の両エリアにモニタリングポイントを設定
– m1(3.5, 1.75, 1.7)
– m2(3.5, 5.25, 1.7)
•
熱負荷条件
– 人体 13 W/㎡
– OA機器 39 W/㎡
– サーバラック 2000 W
m1
シナリオ設定
• シナリオ1
– 平面角 0℃ で10分送風
• シナリオ2
– 開始1分は平面角 0℃、残りの9分は平面角
315℃ (-45℃)で送風
仰角はどちらも0℃で固定
シナリオ1:時間経過による気温変化
Z軸面 1.7m 地点
均等に風は流れているが、上下の温度差が激しい
シナリオ1:モニタリングポイントでの温度比較
35
m1
m2
30
気温(℃)
25
20
15
10
5
0
0
100
200
300
400
経過時間(秒)
500
600
10分経過しても、m1とm2の温度差が5℃ほどある
シナリオ2:時間経過による気温変化
Z軸面 1.7m 地点
開始1分後から、冷気が下部中心に流れてきている様子が分かる
シナリオ2:モニタリングポイントでの温度比較
35
m1
m2
30
気温(℃)
25
20
15
10
5
0
0
100
200
300
400
経過時間(秒)
500
600
m1 と m2の温度差は0.9℃ほど、シナリオ1と比べると大分改善している
シナリオ2における温度分布
明らかな熱源がある場合、少し場所が違うだけで、温度差が激しい。
1箇所で測定するのは危険。
まとめ
• 自律型のセンサ/アクチュエータネットワー
クを構築する基盤技術として PIMSAN を
提案
• センサ/アクチュエータネットワークが自律
的に動作することで、ネットワーク切断に
対する耐性とセンサとアクチュエータの
シームレスな接続を実現する
デモ概要
被災地における隊員を支援するシステム
想定環境
• フィールド
– 広域な災害フィールド
– 災害フィールドにセンサノード撒かれている
– 各センサノードは自分の位置情報を把握している
• 隊員
– センサノードと端末を持ち歩く
– 複数人いる
– GPSを持っている(自分の位置が分かっている)
要救助者?
危険な地域?
Sensing
Context inference
Actuation
被災地における隊員を支援するシステム
全体像
基幹ネットワーク
シンクノード
センサネットワーク
センサノード
災害フィールド
隊員
デモ構成
本部
シンクノード
Region 0
Region 2
Region 1
Region 3
隊員
センサノードは Mote MPR2400J MICAz を使用
隊員側の端末はタブレットPC(ThinkPad X41) を使用
•
•
•
•
災害フィールドをリージョンに分割し、各リージョンに3台のセンサノードを配
置する
各センサノードは、火災センサ(光センサ)、ガスセンサ(振動センサ)をもつ
リージョンの総合的な危険度をベイズ推論によりもとめ、隊員に通知する
センサノードがノードの故障、バッテリー切れ、ネットワークの不調などの要
因でシンクノードに到達できなくなる場合を考える
通常時(非切断時)の挙動
本部
シンクノード
ベイズモデルの適用
危険度の推論
Region 0
Region 1
GUIに表示
Region 2
•
Region 3
センサノードはマルチホップでシンクノードに Rawデータを送信する
–
TinyOS標準の経路制御の一つ MintRouteを使用
•
•
•
隊員
A. Woo, T. Tong, D. Culler, “Taming the Underlying Challenges of Reliable Multihop Routing in Sensor Networks,” in
Proc. of ACM SenSys 2003.
本部サーバはシンクノードから送られた Rawデータにベイズ推論モデルを適用し、各
リージョンの危険度を計算する
隊員端末は、本部サーバから送られた各リージョンの危険度をGUIに表示する
危険度の推論に用いるベイジアンネットワーク
この地域の危険度
n1 のガス
n1の火事
n2のガス
n2の火事
Yes %
No %
n3のガス
n3の火事
切断時の挙動
本部
シンクノード
切断の通知
切断
Region 0
Region 1
GUIに表示
Region 2
•
•
Region 3
本部サーバは切断を検知すると、隊員端末へリージョン毎に切断を通知する
センサノード
1.
2.
3.
•
隊員
切断を検知すると同じリージョンの切断したセンサノード間でクラスタヘッドを決定する
各センサノードはセンサデータを離散化した結果を、クラスタヘッドへ送信する
クラスタリヘッドは、前もって配布された組み合わせインデックスを参照し危険か否かを判
定し、リージョンの危険度情報をブロードキャストする
隊員端末は、クラスタヘッドから送られた危険度情報を受信し、本部サーバから送ら
れた危険度(切断情報)と共にGUIに表示する
切断時センサノード間のクラスタリング
• センサノードをクラスタ
に分割
– 静的なクラスタリングを
想定
クラスタ
クラスタヘッドの選出
• クラスタヘッドが故障
した場合、新たなクラ
スタヘッドを選出する
• クラスタヘッドがデー
タを集め推論する
クラスタヘッド
モデルの適用
• クラスタ毎にベイズモデ
ルを適用
– 各ノードが管理するデータ量
を限定可能
– 事前にクラスタに適用させた
モデルが必要となる
クラスタ
ソフトウェア構成
•
本部側
– PimsanMain: 接続時のデータ収
集、推論
•
PimsanMain
GUI
Pimsanz
PimsanMobile
隊員側
– PimsanMobile:センサノードからの
危険度情報の受信
– GUI:GUIの表示
•
本部サーバ
センサー側
– Pimsanz: 接続時のデータ送信、
切断時の推論
センサノード
隊員端末
予備スライド
Trigger
Delegation
Compaction
Posterior probability
distribution
B
A
C
Bayesian inference
Working
true
false
Temperature
Lights
dark
bright
0
1
cold
warm
0
1
Movement
0
1
cold
warm
Time
Sound
0
1
cold
warm
0
1
cold
warm
0
1
Context modeling using
Bayesian network
Backbone
server
Sink node
D
E
Sensor node
Actuator node
コンテキストを抽出するための
確率推論をどこで行うか?
1. サーバ上での確率推論
– 全ての計算,データ収集,アクチュエーショント
リガーを基幹サーバで行う
2. センサノード上での確率推論
– 全ての計算,データ収集,アクチュエーショント
リガーをセンサノードで行う
3. ハイブリッド確率推論方式
Inference
server
actuator
Inference
actuator
sensor
– 接続時
• 基幹サーバ上で確率推論
• 確率推論分布をセンサノードに配布しておく
Inference
– 切断時
• センサノード上で確率推論
• 収集したセンサデータと配布された確率分布
を比較する
server
actuator
Inference
sensor
actuator
デモシステムにおけるモデル