2006 年度 泰吉郎記念研究振興基金 報告書

ユビキタスサービスのためのセンサネットワークプラットフォームに関する研究

慶應義塾大学 政策・メディア研究科 修士2年 小泉健吾
サイバーインフォマティックス(CI)  徳田研究室

研究概要

近年,プロセッサやメモリ,通信モジュールの小型化および高性能化に伴い,小型無 線センサノードを用いたユビキタスコンピューティング環境が実現されつつある. 小型無線センサノードを物に取り付けることで,物は計算能力や通信能力を持つ スマートオブジェクトになる.ユーザは,スマートオブジェクトを利用すること で,落し物や忘れ物などの物に関する問題を解決するスマートオブジェクトサー ビスを利用できる.スマートオブジェクトサービスは,物によって提供されるという性質上,開発者 や管理者などのエキスパートではなく,物の所有者であるユーザ自身によって管理されることが望 ましい.しかし,センサノードを扱う際に必要となる専門知識を持たないユーザ にとって,スマートオブジェクトサービスの運用は難しい.

本研究の目的は,ユーザによるスマートオブジェクトサービス運用の支援である. スマートオブジェクトサービスのライフサイクルは,構築段階,導入段階,利用 段階,修正段階,破棄段階の5段階に整理される.本研究では,スマートオブジェクトサービスを Event,Action,Flow で構成されるルールとして定義することで運用を単純化す る.本研究で提案するスマートオブジェクトサービス運用支援機構uCoordinator は,ルール分割機能,ルール取得機能,ルール保持機能,ルール編集機能を持ち,上記5段階の中 で特に導入段階,利用段階,修正段階を支援する.

1. 研究背景

近年の技術革新により,同一基盤上にセンサ,アクチュエータ,計算資源などを 搭載した無線センサノードの小型化が進んでいる.アメリカの Crossbow 社では, 無線センサノード「MOTE」を切手サイズまで小型化してお り,ドイツ・Karlsruhe大学の TecO では 2cm 四方のセンサノード「uPart」 (図1)を,アメリカ・MITのMedia Labでは 2cm * 2.5cm の「Mites」を開発してい る.また,Crossbow 社の MOTE MICAz や TecO の zPart など,IEEE802.15.4 に基づく省電力な無線規格 ZigBee を利用したセンサノードも登場しつつある. これらの小型無線センサノードは,ユビキタスコンピューティング環境を実 現する技術基盤として注目を集めている.


図1. uPart

1990年代後半から2000年代初期,家や オフィスなどの壁や床にセンサを設置し,ユーザの支援を行う研究が登場した. 現在は,小型センサノードを家の あらゆる場所に設置する研究が行われている.一方で,オフィ スの机や椅子などにセ ンサノードを取り付ける研究や文房具 やコップなどにセンサノードを組み込んだり,外部に取り付 ける研究も盛んに行われている.このようなセンサノードを 組み込まれたり取り付けられたりされた「物」はスマートオブジェクトと呼ばれ る.図2にスマートオブジェクト例を示す.


図2. スマートオブジェクト例

スマートオブジェクトは,ユーザが明示的にインタラクションを起こさない壁や床などにセンサノードを取り付けた場合と異なり,よ り詳細なユーザアクティビティの取得や,物の状態を利用したサービスを構築で きる.例えば,コップに取り付けられたセンサノードから振動データを取得すれ ばそのコップが利用されているのかどうかが分かり,温度データを取得すれば中 に入っている飲み物の温度変化が分かる .さらに,飲み物の温度が下がったら音で 知らせるアプリケーションを作成することにより,飲み物の温度監 視サービスを構築できる.このようなスマートオブジェクトに基づくア プリケーションによって実現される サービスを,本研究ではスマートオブジェクトサービスと呼ぶ.

スマートオブジェクトサービスは,ユーザが日常生活で直面する,物に関した問 題を解決できる.例えば,落し物は,スマートオブジェクトが振動を検出できる ならば,振動が止まった時にユーザへ知らせることにより防止できる.また,ユー ザが探し物を行う場合,スマートオブジェクトが音を発せられるならば,PDA や携帯電話などの 携帯端末から無線を介してスマートオブジェクトの音を発することで,ユーザを支 援できる.

スマートオブジェクトサービスはユーザの生活に密着し,ユーザ個々人 が抱える問題を解決する.このようなサービスの運用は開発者や管理者などのエキスパー トではなく,ユーザ自身によって行われる方が現実的であると言える. しかし,ユーザはエキスパートが持つような専門知識を持っていないため,セン サノードやアプリケーションによって構成されるスマートオブジェクトサービス の運用は困難となる.そのため,スマートオブジェクトサービス運用の支援が必要 となる.

2. スマートオブジェクトサービスの運用支援

2.1 スマートオブジェクトサービスのライフサイクル

本節ではスマートオブジェクトサービスのライフサイクルについて述べる.ライ フサイクルとは,誕生から死までの過程を示す.すなわち,サービスのライフ サイクルとは,構築から廃棄までの過程を示す.

ここで,本研究の前提環境におけるスマートオブジェクトサービスのライフサイクルを整理する.スマート オブジェクトサービスは,まず開発者によって開発されたコンポーネン トを組み合わせることにより構築される.コンポーネントには,センサノードの プリミティブなプログラムが含まれる.次に,セ ンサノード上に設置されることで,ユーザはそのサービスを利用可能になる.そ の後,そのサービスが不必要になれば破棄し,変更して再利用したい場合は修正 を行う.したがって,ユーザ主導型利用形態におけるスマートオブジェクトサー ビスのライフサイクルは,以下の5段階に分けられる.

本研究では,これらの段 階を経たサービスの管理を運用と呼ぶ.このライフサイクルは,スマー トオブジェクトそのもののライフサイクルではなく,ス マートオブジェクトサービスのライフサイクルを示す.

2. 2 スマートオブジェクトサービス運用の問題点

スマートオブジェクトサービスは,前節で述べたライフサイクルに 基づいて運用される.しかしながら,スマー トオブジェクトサービスを日常生活で用いる場合,開発者や管理者などのエキス パートではなく,ユーザ自身がスマートオブジェクトサービスを運用する方が現実的であ る.しかし,ユーザはエキスパートが持つ専門知識を持っておらず,複数のスマートオブジェクトが存在する環境でスマートオブジェクトサービスを運用する場合,次の問題点が生じる.

センサノードを意識した導入の煩雑さ

導入段階において,各センサノードに異なるプログラムを必要とするスマートオブジェクトサービス を導入する時,ユーザがセンサノードを意識しなければならない.例えば,ペン とペンケースが離れたら両方のセンサノードから音を発するというサービスを導 入する場合,ユーザはペン用のプログラムとペンケース用のプログラムをそれぞ れ該当するセンサノードに焼き込む必要がある.この時,導入に要するプログラム焼き込み回数は, センサノードへのプログラム焼き込みをw,プログラムを個別に焼きこまなけ ればならないセンサノードの数をnとすると,w*n回となる.

また,マイクロプロセッサ用ライタを用いて焼き込む場合は,物に取り付けるセ ンサノードをひとつひとつ把握し,焼き込み終了後に適切な物に取り付けなけれ ばならない.OTAP であっても,ユーザが各センサノードの ID を把握しておく必要があ る.

サービス確認時における付加的な手間の増大

利用段階において,各センサノードが提供するサービスの確認には手間を要する. スマートオブジェクトサービスの利用中,各スマートオブジェクトにインストールされ たサービスを忘れてしまった場合やもう一度把握したい場合など,各スマートオ ブジェクトが持つサービスを確認したい場合がある.ユーザがサービスを確認す るためには,センサノードに導入されたプログラムの取得が必要になる ため,ライタか OTAP を利用する.どちらの方法でも,プログラムを取得する時間が必 要になる.さらに,ライタの場合は物からセンサノードを取り外 さなければならず,OTAP の場合はまず確認したいセンサノードの ID を知らなければなら ないため,どちらの方法であっても付加的な手間が生じる.この手間は,スマートオブジェ クトサービスを利用中のユーザにとって,わずかな時間で確認したい場合の障壁となる.

サービス修正におけるユーザ負担の増大

修正段階において,スマートオブジェクトサービスの修正は,ステップ数や作業 内容に関して構築段階以上の負担がユーザに掛かる. スマートオブジェクトサービスの修正には,まず修正する箇所を把握し,次に実 際の修正を行うという二段階の作業が必要になる.修正箇所を把握するには,各セン サノード上のプログラムを取得し,修正が必要かどうかの判断を行う.もし 修正が必要ならば,取得したプログラムを逆アセンブリしてソースコードに直 すか,該当するプログラムの作成時に用いたソースコードを利用して修正を行う.

しかし,複数のスマートオブジェクトが連携して動作するスマートオブジェクト サービスを修正する場合,上記の作業を各スマートオブジェクトに対して行う必 要がある.したがって,プログラム取得をr,修正す るかどうかの判断をc,プログラムの修正をm,プログラムの焼き込みをw, ノード数をnとした場合,修正に要するステップ数は(r+c+m+w)*nとなる. さらに,専門知識を持たないユーザにとって,修正作業は困難を伴う.

2.3 本研究のアプローチ

本研究では,これらの問題点を解決するため,スマートオブジェ クトサービス運用支援機構「uCoordinator」を提案する.本節ではまず, スマートオブジェクトサービスの運用支援について述べ,次にルールによるスマー トオブジェクトサービスの表現について述べる.uCoordinator の概 要について述べる.

スマートオブジェクトサービスの運用支援

スマートオブジェクトサービスの運用支援とは,スマートオブジェクトサービス を運用する際に生じる問題を最小限に抑え,運用時に生じるユーザの負担を軽減 することである. この,スマートオブジェクトサービスの運用を支援するために構築されるシステ ムをスマートオブジェクトサービス運用支援機構と呼ぶ.特に,本研究ではエキ スパートではなくユーザを前提としているため,ユーザによるスマートオブジェ クトサービス運用支援を目的としたシステムを示す.

スマートオブジェクトサービス運用支援機構は,前節で挙げた問題を解決するため,以下の要求を満たす必要がある.

ルールによるスマートオブジェクトサービスの定義

スマートオブジェクトサービスは,スマートオブジェクトの状態に応じてあるア クチュエーションを行うサービスである.すなわち,スマートオブジェクトの状 態をEvent,アクチュエーションをActionとすると,Eventが発生した時にActionを起動するサービ スはEventからActionへの情報伝達として表現で きる.この情報伝達をFlowと呼ぶ. これらのサービス定義に用いるEvent,Action,Flowを研究ではルールと呼ぶ.

3. uCoordinator の設計と実装

3.1 設計概要

uCoordinator は,ルール分割機能,ルール取得機能, ルール保持機能,ルール編集機能を実現するモジュールとして,RuleEditor,RuleCommunicator,RuleHandler を持つ.それぞ れ,ルール編集機能とルール分割機能,ルール取得機能,ルール保持機能に対応 する.RuleEditor はユーザにサービスの開発や修正を行うためのユーザインタフェー スを提供し, RuleCommunicator は端末周辺に存在するノードの発見機能を提供する.また,RuleHandler はルールを解釈し,センサノードの制御を行う.RuleEditor は PC や携帯端末などのユーザ端末上で動作し, RuleHandler はセンサノード上で動作する.RuleCommunicator はユーザ端末とセンサノード の両方で動作し,RuleEditor とRuleHandler 間の通信を行う.図 3にuCoordinator の全体像を示す.


図3. uCoordinator の構成図

3.2 実装環境

本節では,uCoordinator の実装環境について述べる.まず,RuleHandler を実装す るセンサノードとして,TecO の Particle を用いた. Particle は,コアボードとセンサボードから構成されている.コアボードには, マイクロプロセッサやバッテリ,バッテリセンサ,ビープ機能などが備えられて いる.センサボードはコアボードのバッテリを利用して動作するため,このセン サボードに様々なセンサを取り付けることで Particle のセンシング機能を拡張 できる.本研究では,照度,温度,加速度,LED の付いたセンサボードを利用した.

PC側ソフトウェアの開発には,Java1.6.0を用い,センサノード側ソフトウェアの実装にはC言語を用いた.Particle がPIC18F6720を用いて実装されているため,本研究でも CCS社のCコンパイラを用いてバイナリファイルを作成した.

3.3 利用方法

本節では,実装したuCoordinator の利用方法について述べる.uCoordinator はユーザ端末 上で動作するため,ユーザはユーザ端末を用いてサービスの運用を行う.図4 に uCoordinator のスクリーンショットを,図 4にuCoordinator の利用風景を示す.この図では,日記と携帯電話 のストラップにセンサノードを取り付け,PDA 上でuCoordinator を利用している. また,PDA 上のuCoordinator とセンサノードの通信を実現するため,PDA に USB ブジッジを取り付け,センサネットワークを流れるデータと UDP データグラ ムとの変換を行っている.ブリッジは PDA に直接取り付けなくとも,ネッ トワーク上に固定的に設置しておくことも可能である.


図4. スクリーンショット


図5. 利用図

利用手順は次の通りである.ユーザはまずユーザ端末上 でuCoordinator を起動してセンサノードを検索する.するとuCoordinator によっ て発見したセンサノードが編集画面上に表示され,ユーザはサービス構築が可能 になる.サービス導入やサービス取得を行う場合は,それぞれ編集画面のSetボタンとScanボ タンをクリックする.サービス修正もサービス構築と同様に,編集画面を用いて行 う.

3.4 サービス例

本説では,uCoordinator で構築できるサービス例について述べる. まず単体センサノードを 用いたサービス例を図6に示す.この例 では,日記に取り付けられたセンサノードが動いたら,同センサノードからビー プ音を発するというサービスを表現している.写真の右上についている青い四角 が Event を示し,左下の赤い四角は Action を示す.どちらも,クリックする ことで詳細が表示される.Event の四角と Action の四角をつなぐ矢印が Flow を表現している.尚,本論文の実装では,センサデータの閾値や判断方法はユーザ自身が設定するようにした.


図6. 単体スマートオブジェクトを用いたサービス例


図7. 複数スマートオブジェクトを用いたサービス例

また,図7に複数のセンサノードを用いた場合のサービス例 を示す.この例では上記サービスに加え,日記が動かされると携帯電話に取り付けられたセンサノー ドも反応し,赤いLEDが点滅するというサービスを表現している.複数センサノー ドを用いる場合も,ある Event と Action を矢印で結ぶことによってサービス を構築できる.

センサノード上のセンサやアクチュエータが持つ機能は,RuleHandler によって提 供されている.ユーザは,RuleEditor によって Event や Action を組み合わせて サービスを構築する.

4. まとめ

本論文では,スマートオブジェクトサービス運用支援機構について述べた.スマー トオブジェクトサービスを日常生活で利用する場合,スマートオブジェクトサー ビスの運用主体は,開発者や管理者などのエキスパートではなくユーザ自身であ る方が,ユーザの要求に合ったスマートオブジェクトサービスを利用可能になる. しかし,専門知識を持たないユーザにとって,スマートオブジェクトサービスの 運用は困難となる.

本研究では,ユーザによるスマートオブジェクトサービス運用支援機構を構築す るため,まずスマートオブジェクトサービスのライフサイクルを,構築段階,導入 段階,利用段階,修正段階,破棄段階の5段階に整理した.そして,スマート オブジェクトサービスをEvent,Action,Flow で構成されるルールとして表現し, 各段階におけるスマートオブジェクトサービスの扱いを単純化した.本研究で構 築したスマートオブジェクトサービス運用支援機 構uCoordinator は,ルール分割機能,ルール取得機能,ルール保持機能,ルール 編集機能を持ち,スマートオブジェクトサービスのライクサイクルでも特に導入段階,利用段階, 修正段階の支援を行う.

uCoordinator の実装は,実際のセンサノードを用いて行った.uCoordinator はユー ザ端末上で動作するRuleEditor,センサノード上で動作するRuleHandler,両者間で ルールの送受信を可能にするRuleCommunicator によって構成される.通常,RuleHandler が ルールを解釈することによって,センサノードだけで動作する.ユーザは必要に 応じて,RuleEditor で提供される GUI 上で,センサノード上のRuleHandler が解釈 するルールの構築,取得,修正を行う.

5. 成果