WISS2005

Invisible Assistant: ユーザ定義のルールに基づく機器間連携支援
Rule-based Invisible Assistant for Ubiquitous Computing

根岸 佑也

河口 信夫∗

Summary. In this paper, we propose an assistant system which does irritating operations on behalfof user among information devices, such as PCs and information appliances, through the network. Usinga screen image of user interface, our system can control any device which has a GUI application or webinterface. The assistant can also monitor the existing devices, or unknown devices, and a user can feel asif there is an invisible assistant in their environment.

1

はじめに

近年, 日常生活の場において情報家電などネットワークに対応した機器が増加している．また，一人で PDA や PC などの複数の計算機を同時に利用する場面も一般的になりつつある．このような複数の機器に囲まれた環境において，我々はある機器に対する操作の後に他の機器も操作するといった利用方法を日常的に行っている．例えば，電話に出たら音楽プレーヤの音量を下げる操作が挙げられる．このような一連の操作は繰り返し行われる機会が多い．
多数の機器を快適に利用するためには, 操作をルールとして記録し，似たような状況に応じて自動的に機器を操作する Programming by Example システ
ム [1] の構築が望ましい．さらに，今後ネットワーク対応の機器がますます増えることが予測されるため，未知の機器に対してもこれまでの機器と連携可能であることが望ましい．特定の API に頼ることなく，機器を操作するアプローチとしては，すでにビットマップパターンに関して操作を行う Triggers[2] やAutoMouse[3]，VisMap[4] などが提案されている．
しかしながら，これらのシステムはネットワーク経由で制御することや，複数の機器に対する制御を考慮していない．我々は，ネットワーク経由でのユーザインタフェースの遠隔操作により，任意の機器間に対して連携を実現するシステムを提案する．すな
わち，PC は当然とし，情報家電，センサデバイス
でも，PC から制御可能な GUI アプリケーションやWeb インタフェースが提供されてさえいれば，全て本システムの対象となる．

∗c 2005 日本ソフトウェア科学会 ISS 研究会．
°Yuya Negishi, 名古屋大学大学院 情報科学研究科 情報システム学専攻, Nobuo Kawaguchi, 名古屋大学 情報連
携基盤センター

表 1. Wait Command リスト

イベントの種類

説明

Image Event
Keyboard Event
Mouse Event

指定イメージの発見まで待機指定キーの操作まで待機指定イメージのクリックを待機

表 2. Operation Command リスト

操作の種類

説明

Keyboard Operation
Mouse Operation
Clipboard Transfer

キーボード操作
マウス操作
クリップボードを転送

22.1

支援システムの設計
要求事項

ユーザインタフェース経由での機器間連携を実現するためには，以下の 2 つの機能が要求される．
(1) 任意の対象機器やアプリケーションに対して，依存性のない操作ルールを記述可能(2) システムが複数の機器を監視・操作可能
以下では，これらを考慮した支援システムの設計について述べる．

2.2

ユーザインタフェースを用いた操作ルール

我々は依存性のないルールを記述するために，ルールを表 1 と表 2 のようなコマンドの系列として定義した．具体例として，図 1 のルールは IP 電話をかけようとした時に自動的に音楽プレーヤを一時停止させる．1 番目のコマンドで Skype のアイコンに対するユーザの操作を監視し，2 番目のコマンドでiTunes の一時停止ボタンを探索し，3 番目で発見した領域に対して左クリック操作を行う．

WISS 2005
1.

Target Device List

WaitCmd , Mouse Event(wait for left click on this image)

WaitCmd , Image Found
IP Telephone 2.
(search of this target image)
Application
3. OpCmd , Mouse Operation(click left mouse button on this)Viewer:1 (MacOS X)+ MSN Messenger

Music Player
Application

Weight Sensor and Chair

図 1. IP 電話と音楽プレーヤを排他利用するルール例
Master Device
Processor …

Rule
RemoteOperation

cogma
Java VM
OS

Remote Operation

ApplicationVNC Server
OS

Target Device

Request for
pattern matching

Pattern Matching
Event
Processor
notification

Viewer…
(VNC Client)

NetworkCommand List

Screen Image Transfer

ApplicationVNC ServerOS

Target Device

ApplicationVNC ServerOS

図 3. マスタのスクリーンショット…

Target Device

図 2. システム構成

2.3

Viewer:0 (Windows XP)+Phidget Weight Sensor
Application

遠隔操作を利用した機器間の監視と自動操作ルールを複数の機器間にまたがって適用するために，本手法ではネットワーク経由の遠隔操作を利用し，機器やアプリケーションのユーザインタフェースを監視・操作することを実現する．そのために，我々は自動操作の対象となるターゲット機器に対して，次の機能を持つマスタ機器を定義した．提案システムはマスタの上で稼動する．
(1)Viewer: ターゲット機器のユーザインタフェー
スに対する遠隔操作ツール(2)Rule Database: 操作ルールを保持(3)Rule processor: ルールに従いターゲット機器のユーザインタフェースを監視，自動操作

4

利用例

図 3 にマスタ機器のスクリーンショットと利用例を示す．(1)Phidget Weight Sensor を椅子の足元に設置し，サンプルアプリケーションの質量表示の変化に応じて，(2) MSN Messenger の退席中表示を変化させる．この他にも，音声入力ソフトや RFIDタグのリーダソフトと連携させることも可能である．
これらはデバイスに付属のサンプルアプリケーションや，連携機能のないアプリケーションであるが，本システムにより改変することなく連携可能になる．

5

まとめ

本稿では，機器やアプリケーションが持つユーザインタフェースを，ルールに基づいて，監視・自動遠隔操作できる連携支援システムを提案した．それにより，異種 OS・異種アプリケーション間をまたぐ連携操作を手軽に実現できることを示した．

参考文献
具体的には，ターゲットに VNC サーバ [5] を設置することで，マスタからターゲットの画面を監視，マウス・キーボードを遠隔操作可能にする．よって，対象アプリケーション内部に変更を加える必要はない．

2.4

ユーザの実演によるルールの作成

ルールは，マスタ上の複数の VNC ビューワに対するユーザの例示操作から，システムが半自動的に生成する．

3

実装

我々は，設計に基づき，図 2 に示すようなシステム構成を持つマスタ機器を実装した．Cogma[6]を用いることでターゲット上の VNC サーバの自動発見を行っている．動作確認 OS は Windows XP,MacOS X, Linux である．

[1] Allen Cypher (ed), Watch What I Do Programming by Demonstration, The MIT Press,Cambridge, 1993.
[2] Richard Potter, Triggers: Guiding Automation
with Pixels to Achieve Data Access, Chapter17,
In Cypher [1], 1993.
[3] 山本 格也, GUI を API として用いるプログラミング法, 情報処理学会論文誌,
Vol.39 No.SIG
1(PRO 1), pp. 26–33, 1998.
[4] Robert St. Amant, Henry Lieberman, Richard
Potter, and Luke Zettlemoyer, Visual generalization in programming by example, In Communications of the ACM, 43(3), pp. 107-114, 2000.
[5] Tristan Richardson, RealVNC Ltd (formerly ofOlivetti Research Ltd / AT&T Labs Cambridge),
The RFB Protocol Version3.8, 2004.
[6] Cogma Project, http://www.cogma.org/