佐久穂げんでる農業:栽培管理センサーNWの試み 遠藤隆也(M-SAKUネットワークス)、小林守正(佐久穂町会議員、花農家)、 柳沢 豊・須山敬之・納谷 太(NTTコミュニケーション科学基礎研究所)、 須田稔勝(佐久穂町役場産業振興課農政係) M-SAKUネットワークス,〒384-0613 長野県南佐久郡佐久穂町大字高野町1500-42 要旨 長野県の佐久穂町で、クラウド・コンピューティング環境を利活用した、元気の出る農業の支援活動:「佐久穂げんでる農業」の中で、これまでの映像知識ベースを用いて一緒に協調学習していく活動に加えて、センサーネットワークを用いた栽培管理支援活動の試みを始めた。その概要について述べる。 キーワード 農業コミュニティ,栽培管理,センサーネットワーク,クラウド・コンピューティング,総合デザイン 1. はじめに: 【基本的コンセプトにおけるキーとなる事項】 ・これまでの活動の概要:栽培管理支援のために、クラウドコンピューティング環境を利用した映像知識ベース技術を導入するということは、 - 個人の人の知覚、解釈、評価の映像による支援、 に加えて、 - 社会的なコミュニティの協調学習の支援 につながっていった。 (ここに説明図をいれる) ・センサーネットワークスを導入するとはどういうことか? ・それは、単に、人の知覚を補充するだけではない意味が創出されてくる ・農業における時空間・情報空間に、マシーンによるサイバー情報空間 ・人の知覚・認知とマシーンの知覚が複合化されたハイブリッド・エクスペリエンス空間 ・新たな社会分散認知問題 Socially Distributed Cognition ・経営課題対応型 Adaptive/Exploring Sensor Networks 【センサーネットワークとしてキーとなる事項】 専門家が必要とするデータが十分収集できるセンサネットワークを構築するためには,現場でのインタラクティブなシステム開発が求められる. すなわち,データを取る実験を繰り返すと同時に,どのようなデータの取り方をすれば目的の事象が観測できるのかということを,専門家とシステム開発者とが議論を繰り返して進めるというプロセスが必要になる. このプロセスの過程では,最終的なシステムの効用がはっきりしないまま,データ取得実験を繰り返す必要がある. その過程では,システムが廉価であること,設置位置の変更等が容易であること,システムの拡張性の高さ,開発の容易さといった要件が求められる. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- ICTを利活用した「佐久穂げんでる農業」の試み 遠藤 隆也 M-SAKUネットワークス,〒384-0613 長野県南佐久郡佐久穂町大字高野町1500-42 ----- 要旨 「農民とともに」の健康管理活動で歴史ある長野県の佐久穂町で、クラウド・コンピューティング環境を利活用した、元気の出る農業の支援活動:「佐久穂げんでる農業」の試みを始めた。人々の活動(H)に参加しながら、それに関与する情報の生態(I)を観察し、コミュニティ活動が新たな社会的・拡張的発達サイクルに深化していくための環境場を、一緒に協調学習しながら総合的にデザインしていく、HI総合デザイン活動について述べる。 ----- キーワード 農業コミュニティ,活動,情報生態,クラウド・コンピューティング,総合デザイン ----- 1. はじめに: 「農民とともに」の健康管理活動で歴史ある長野県の佐久穂町で、さまざまな地域活動のネットワーク支援(佐久総合病院・地域医療に関連した「メディカル佐久情報ネット(www.msakunet.info)」、佐久穂町の元気のでるネットワーク創りに関連した「佐久穂げんでるネット(www.sakuho.org)、北八ヶ岳・白駒池周辺の苔と森に関連した「北八ヶ岳苔の会(www.kitayatsu.net)」など)を行ってきた。この地の農業に関しては、2年前までは四季の農業風景変化を写真撮影する程度の係わりで、農家が農作物を生産し、私たちは生産された農作物を消費するという分業関係にあった。それに対して、消費者も農家の活動にお役にたてることはないか、ということで始めたHI総合デザイン(Human activityとInformation ecologyのGround Design)活動の概要について報告する。 2. HI総合デザイン活動とは: HI総合デザイン活動とは、人々の現場の活動(Human activity)に参加しながら、それに関与する情報の生態(Information ecology)を観察・調査し、人々の活動が新たな社会的・拡張的発達サイクルに深化していくための環境場を一緒に総合的にデザインしていく活動をいう。 3. 農業活動とこの地の農業情報の生態: この地における具体的な農業活動とそれに関連した情報を学ぶために、複数の農家の方々(稲作、花、果樹など)、関係する方々の様々な活動に参加・観察させて頂いた。その学びから得られた、この地の農業活動とその情報生態の地域歴史・文化的な構造を示すイメージ図を図1に示す。この地の地域歴史文化口承活動、近所の先輩農家の体験活動、JA指導員活動、専門部会活動、都会の出版活動、県の試験所等の周知活動、無線放送、メディア活動などから生み出される暗黙知と形式知からなる環境に囲まれ、本人自身の歴史的過去の体験活動、インターネット情報収集活動からなる暗黙知と形式知を利活用しながら、実際の本人のその場での農業活動では、農作業現場に埋め込まれた社会分散認知環境の中で、年間計画やビジョン・目標などを頭に描きながら、現場でのインタラクション・作業を行っている様子が観察された。図1 農業活動の情報生態:地域歴史・文化的な構造 4. 環境場のHI総合デザイン: 上述の農業活動の情報生態を考慮しつつ、クラウド・コンピューティング環境(Google Apps、YouTube、Picasa、mind42、農業情報ネットなど)を利活用した「佐久穂げんでる農業」のシステム構成・運用図を、図2に示す。図2 クラウド・コンピューティング環境を利活用した「佐久穂げんでる農業」のシステム構成・運用図 この中では、現場農作業や育苗管理説明情報の映像化・ディジタル化、映像の時間軸に沿った知識やコメントの付与(図3)、教科書的知識情報のマインドマップによる形式知表現などが、佐久穂げんでるネットの中で、総合的に表象されたマクロな認知インタフェース(遠藤 1995)で見られるようになっている。 図3 映像の時間軸に沿った知識やコメントの付与 5. むすび:今後の展開に向けて これまでの、活動からの学びと新たな拡張的発達サイクルに向けてのイメージを図4に示す。これまでの農家は生産し、消費者は消費するとの分業から、消費者が農業活動のICTによる見える化、農産物の共創支援活動に参加することで、与え手、受け手の協業へと進み、それが新たな社会的・拡張的発達サイクルに向けての可能性につながる動きが見受けられるようになってきている。 図4 活動からの学びと新たな拡張的発達サイクル しかしながら、これまでの試みは、未だ情報の「見える化」と「共同利用」のレベルにとどまっている。人々の活動が、コミュニティ活動としても、新たな社会的・拡張的発達サイクルに深化していくためには、「コミュニティ支援」や「協調学習支援」の機能が必要になってくる。 現在、図5に示す「シーン・ナレッジ」(東ら 2008)を利用して、「コミュニティ支援」、「協調学習支援」を行っていくシステムの共同実験、並びに「光iフレーム」の利用実験を始めている。(詳細は別途報告予定である。) 図5 シーン・ナレッジ(東ら 2008)を利用した「コミュニティ支援」「協調学習」の試み 謝辞 日頃、農業についてご教示・ご示唆頂いている井出貞良さん、小林守正さんご夫妻、高見澤良平さん、JA佐久浅間の原田さん・トルコギキョウ専門部会のみなさん、萩原紀行さんご夫妻、在賀耕平さんご夫妻、八千穂有機農業研究会のみなさん、中辻佳和シェフ、佐久総合病院健康管理部の前島文夫さん、国立科学博物館植物研究部の樋口正信さん、サカタのタネの山田祐介さん、佐久穂町産業振興課の相馬信治氏、佐々木勝氏、古海勝氏、アンテナ佐久穂の力武文雄氏、町の若者の「いいずら研究会」のみなさん、そして情報通信技術についてご教示・ご支援頂いているNTTサイバーソリューション研究所の加藤洋一氏、小島明氏、NTT長野支店の立花研司氏、窪田和樹氏、桜井孝典氏、青木幸雄氏に深く感謝致します。 引用文献 遠藤隆也(1995):「リプリゼンテーションとインタフェース問題の基底: わかる認知科学から、わかりあえるマクロな認知工学に向けて」、認知科学Vol.2、No.1. 東正造、寺中晶郁、嶌田聡、小島明(2008):「映像中のナレッジ発見・共有を想定したシステムの開発」、電子情報通信学会、信学技法 ME2008-156, 2008-09-26 -------------------------------------------------------------------------------------------------------------------------------------------------------- 佐久穂げんでる農業:クラウド環境を活用した 農業コミュニティ協調学習支援活動 遠藤隆也(M-SAKUネットワークス)、小林守正(佐久穂町会議員、花農家)、 小島明(NTTサイバースペース研究所)、嶌田聡(NTTサイバーソリューション研究所)、 古海淳(佐久穂町役場産業振興課農政係)、桜井孝典(NTT東日本・長野支店) M-SAKUネットワークス,〒384-0613 長野県南佐久郡佐久穂町大字高野町1500-42 要旨: 長野県の佐久穂町で、クラウド環境を利活用した、元気の出る農業の支援活動:「佐久穂げんでる農業」活動の一環として、トルコギキョウ栽培管理記録を1年間にわたりハイビジョン映像で撮影し、映像シーン連動掲示板システム(SceneKnowledge)を用いた農業コミュニティ協調学習支援活動をおこなったので、その概要をのべる。 キーワード: 農業コミュニティ,情報生態,クラウド・コンピューティング,SECIモデル、協調学習 1. 佐久穂町における農業情報の生態: 前回の報告(遠藤 2011) において得られた、この地の農業活動とその情報生態の地域歴史・文化的な構造を表すイメージを図1に示す。この地の農業情報の生態は、地域文化の口承活動、近所の先輩農家の体験活動、JA指導員活動、専門部会活動、都会の出版活動、県の試験所等の周知活動、無線放送、などから生み出される形式知と暗黙知からなる情報環境に囲まれ、本人自身の過去の体験活動、関連コミュニティの形式知と暗黙知を利活用している。具体的な現場作業を観察すると、農作業現場に埋め込まれた農業コミュニティの知の中で、年間計画やビジョン・目標などを頭に描きながら、現場での状況観察、操作や作業のインタラクションを行っている。(図1) 2. 農業コミュニティの知の協調学習法: 形式知と暗黙知からなる農業コミュニティの知を、共同で協調学習する方法に関しては、知識創造企業におけるSECIモデル(野中 1996)が参考となる。SECIモデルは、暗黙知と形式知の共同化、表出化、連結化、内面化の、4つのプロセスからなるスパイラルで表現されている。 このモデルを、映像を活用して支援する方法として、映像シーン連動掲示板システム(SceneKnowledge)が開発されている(嶌田ら 2012)。同システムを利用して、農業コミュニティの知を、図2に示すようなプロセスで、スパイラルに協調学習していく方法を実験することとした。 3. 実験の概要、システムの構成と運用: 今回の実験では、トルコギキョウの栽培管理(苗床作り、播種、育苗、床作り、定植、生育初期、生育中期、生育後期、出荷)の現場を、実際の作業に従事しながら、1年間にわたりハイビジョン映像で記録した(図3)。 それらの映像を意味的にまとまりのあるシーンに分割し、映像シーン単位に掲示板を設置する、映像シーン連動掲示板システム(SceneKnowledge)を構成した。 このシステムを含めて、農業活動の情報生態 (図1) に対応するために、クラウド・コンピューティング環境(Google Apps、など)を総合的に利活用した「佐久穂げんでる農業」システムを構築した(図4)。 4. SceneKnowledgを用いた協調学習支援活動 SceneKnowledgeの画面例を図5、図6に示す。右側の掲示板にはシーン毎のタイトルと概要や、コメントや質問が表示される。映像中に書込み、手書き描画もできる。 このような機能により、SECIモデルの4つのプロセス、 ①共同化:映像シーン分割と公開による共有(視聴覚に訴える映像の表現力により、映像視聴して模倣や直感的な把握により技能内容を共有することができる) ②表出化:コメント付加と公開(映像シーン毎に掲示板を設け、映像中の各シーンに対して、有スキル者が映像に潜む知識を解説し、コツや技などを集約できる) ③連結化:議論(コメント返信)(映像シーンでコンテクストを共有したうえで利用者間でのQ&Aができ,解説コメントの登録や議論が行いやすくなる) ④内面化:シミュレーション(繰り返し視聴処理)(技能実践の準備として、行いたい技能に関する映像箇所を繰り返し視聴し、イメージ的にシミュレーションできる) を実践することができ、農業コミュニティの協調学習支援をおこなう活動につながってきた。 今後は、幅広い世代の利用につながっていくように努めていく予定である。 謝辞 トルコギキョウの栽培に関してご教示頂いている、JA佐久浅間の原田さん、専門部会の皆さんに感謝致します。 引用文献 遠藤隆也(2011):ICTを利活用した「佐久穂げんでる農業」の試み、農業情報学会2011年大会、要旨集. 嶌田聡、東正造、寺中晶郁、小島明、真嶋由貴恵、前川泰子(2012):映像シーン連動掲示板による技能伝承での知識共有と看護分野での評価、電気学会論文誌C, Vol.132, No.3. 野中郁次郎・竹内弘高・梅本勝博(1996):「知識創造企業」, 東洋経済新報社. ----------------------------------------------------------------------------------------------------------------------------------------------------------- 効率的な環境モニタリングを実現 相関性を利用したデータ圧縮技術 農業ICT、オフィスビルの空調管理など、さまざまな環境でのモニタリングへの応用が期待される無線センサネットワークに適した新しいデータ圧縮技術を開発しました。この技術は、各センサノードで観測されるデータ系列間に内在する相関性を利用することで、従来法より高い圧縮率を実現します。さらに、センサノードの数が多いほどデータの圧縮率を高められる特徴があります。 特徴 ・ノードで観察したデータ系列間の相関を利用することで、従来より高い圧縮率でデータを圧縮することが可能 ・【特徴1】過去のデータから、ノードの観測するデータ系列間の相関をあらかじめ学習 ・【特徴2】観測したデータの一部を部分的に間引くことで圧縮(間引き率=圧縮率) ・【特徴3】学習で得た相関情報と他ノードで観察されたデータを利用し、間引かれたデータを推測することで復元 利用シーン ・空調コントロールのための建築物内の温度監視システム ・農業ICTのための圃場監視システム ・災害現場における被災状況のモニタリングシステム ・動植物の生態調査システム グローバルアピールポイント NTTは、これまで理論的には可能とされていたデータ圧縮技術を、実環境で計測したセンサデータに適用できるよう改良し、理論の実用化の可能性を世界で初めて示しました。 ------------------------------------------------------------------------------------------------------------------------------------------------------------ 1. はじめに センサネットワークは,広範囲の実世界で起きるさまざまな事象を,無線伝送技術と多数の小型センサを用いて取得すること目的としたシステムである[1]. 近年では特に,ビッグデータ,M2M といったキーワードに注目されている中で,大量の実世界のデータを取得できる可能性のあるシステムとして期待が集まっている. センサネットワークによって取得した実世界のデータを解析する手法は,さまざまな分野のアプリケーションに適用できると考えられている[2]. センサネットワークは,その用途に応じて求めらる機能,仕様が大きく変化するという特徴をもつ. たとえば,気候の観測なら,ハードウェアとして温度,湿度,雨量計,風速計といった複数のセンサを搭載し,一定時間間隔ごとにデータを取得して送信する機能が最低限必要である. 一方で,傾斜地の土砂崩れを発見する場合は,振動を検知できる加速度計が必要であり,大きな振動を観測したときにデータを送信するという機能が求められる. このような,運用現場でのさまざまな要求仕様に柔軟に答えるためには,使用するハードウェアをユーザが自由に選択でき,なおかつソフトウェアの開発が容易であることが必要である. この要件を満たす方法として,近年センサネットワークのアプリケーション開発を,プロセス仮想マシンを用いて行う方法が提案されてきた[3]. 仮想マシンはハードウェアを抽象化することで,どのハードウェアにおいても同じ開発環境でアプリケーション開発を行うこと を可能にする. また,既存のプログラミング言語に対応することで,ユーザがセンサデバイス独自の開発環境の使用法に習熟することなく,アプリケーションの開発を行うことが可能になる. 実際にこれまでに,センサノード向けのプロセス仮想マシンはいくつか提案されている[4], [5], [6]. これらの多くがJava か,既存言語に拡張を加えた独自の開発言語を使用する必要があっった. CILIX は,Microsoft .NET Framework で開発に用いることができる,C#, Visual Basic, C++/CLI,F# などの言語で記述したプログラムを,小型無線センサノード上で実行させることができる,プロセス仮想マシンである. ユーザはWindows 上のVisual Studio などの既存の開発環境を利用してアプリケーションを作成すれば,それをそのままセンサノード上で動かすことができる. アプリケーションの開発を容易にし,なおかつ設置現場でのさまざまな要求に答えるため,CLI では規定されていない下記の機能を追加した. ・無線通信による動的なプログラムの書き換え ・UDP 通信を用いたI/O の仮想化 ・マルチスレッド制御 ・センサノード間でのプログラムの遠隔呼び出し 本稿では,このCILIX の開発方針と特徴,および実装についての概略について述べる. さらに,実際に設置センサネットワークにおいて,これらの特徴を活かして専門家とインタラクティブに仕様の決定を行い,現場の要求に合致するセンサネットワークを構築できた事例について,研究例について2 件,実用事例について2 件,それぞれ紹介する. 2. 関連研究 以下では,小型センサノード向けに開発された,まず既存のミドルウェアについて述べ,CILIX の位置づけについて説明する. なお,各研究の分類法については文献[7] の分類を参考にした. 小型のセンサノード向けのミドルウェアとしては,TinyOS[8],Smart-Its[9],PAVENET[10],Ubiquitous Chip[11],BTnodes[12],Nano-RK[13] といったオペレーティングシステム(OS)と,Darjeeling[6], SimpleRTJ[5],Sun Spot[14],Mate’[4],ASVM[3],VM*[15],VAWS[16],といった仮想マシンの大きく二つに分類できる. .NET Micro Framework (NMF) [17] はこれらの双方の機能を提供する. 表1 に一覧を示す.本章では,主に開発にかかる労力という観点からこれらの研究を比較する. センサネットワークシステムの開発に用いられるOS としては,TinyOS が最もよく知られている. TinyOS 上でプログラミングすることで,省電力なセンサネットワークシステムを構築できるが,プログラムの開発には,nesC あるいはTinyScript という専用のプログラミング言語を使用する必要がある. Smart-Its では,センサデバイスを扱うためのライブラリ群が提供され,開発者はPIC 専用の開発環境上でC 言語でプログラミングをする. Ubiquitous Chip はイベント駆動型のECA ルールでデバイスの動作を記述するため,ごく小規模のソフトウェアであれば簡単に開発できるが,複雑なシステムを開発するには,イベント駆動型の記述形式に慣れる必要がある. その他にBluetooth で通信するセンサノードのBTnode,ハードウェアリアルタイム処理をサポートできるPAVENET,リアルタイムのセンサデータ処理のためのNano-RK などがあるが,いずれもC 言語などの限られた言語でしか開発が行えない. さらにNano-RK のように,システムの動作を確実にするために,無線での書き込みが行えない例もある. センサネットワーク向けの仮想マシンは,仮想マシンが実行する中間言語の命令を独自に規定したものと,Java のバイトコードのように既存の命令群をそのまま実行できるように設計したものの二つにさらに分類できる. Mate'[4]はTinyOS 上に実装された仮想マシンであり,独自の24 の命令をもち,1 命令でセンサデータを取得したり,データ を無線送信できる. 独自の命令を用いると,このように仮想マシン上のプログラムの大きさを小さくできるという利点がある. その他にも,命令を独自に拡張できるASVM,リアルタイム処理向けのVAWS といった仮想マシンがある. しかし,独自の命令セットを用いると,コンパイラを専用に開発する必要があるため,多くの言語で記述できる環境を実現することは難しい. 後者の例としてはJava のバイトコードを実行できるSimpleRTJ,VM*,Sun Spot,Darjeering がある. SimpleRTJは,Java のバイトコードとそれを実行するためのコードを合わせてコンパイルしてハードウェアに書き込むことで,Java のバイトコードを小型のデバイス上で実行できるようにするプロジェクトである. Darjeering はプログラムの書き換えや,メモリ使用量削減のための工夫がなされ,SimpleRTJ よりも柔軟な開発が可能である. いずれも,これまでに8bit,16bit,32bit の数種類のハードウェア上で動作する実績がある. しかし,JVM であることから,基本的として使用できる言語はJava のみである. VM*はJava のバイトコードをそのまま実行可能なMOTE のハードウェア上に実装された仮想マシンである. バイトコード書き込み時にデバイス上でプログラムを実行するには不要な部分を削り,対応するモジュールを選択して仮想マシンに書き込む. プログラムは無線で書き換え可能であり,必要なモジュールを自動的に追加することも可能である. 動的にモジュールを追加できる機構は,数多く用意された機能から必要なものを選択する際には有効であるが,小型軽量な仮想マシンを実現しようとする上ではオーバーヘッドが増える点も考慮する必要がある. Sun Spot もJava のバイトコードをそのまま実行できるが,センサノードで使用されるマイコンとしては高機能なARM(32 ビット,ROM:4M バイト,RAM:512K バイト)を用いているため,デバイスの小型化,省電力化が難しくい. CILIX とは目指しているターゲットが異なる. これらに対してCILIX は,開発者が好みの言語を用いて,複数のプラットフォームに対応した移植性の高いソフトウェアを開発できるという利点がある. さらに,.NET Micro Framework が使用できない8bit/16bit CPU のデバイス上でもCIL プログラムを動作させることができる. そのため,CILIX を用いることで,開発者は従来より多くのデバイスをセンサノードとして選択できる. 3. CILIX の要求仕様 3.1 観測現場で求められる要件 センサネットワークは長年研究され,同時に多数の実証実験が行われてきたが,商用化にいたる例は米国での広域農地での気候観測など,その例は限られている. センサネットワークは,個々のノードの測定精度が低く,なおかつ通信路の信頼性が低いために,精度が低いデータを少量しか送れないというデメリットをもつ. その代わり,廉価なデバイスを大量にばらまくことで,広範囲のデータを比較的廉価に取得できるという点が,メリットであると筆者らは考える. 精度の低さは,ノードの精度を高めるよりも,数を増やすことで相互に補完して精度を高めるというアプローチをとることが想定されていた[1]. 一般に,製品として販売されるセンサノードは,高精度,高信頼性,高機能性を担保するために,高額化する傾向にある. センサネットワークの用途を特化せず,汎用的なノードを作ろうとすると,高額かつ頑丈なものを作る必要性が生じる. こうした製品は,大規模かつ広範囲でのモニタリングを行うか,もしくは観測価値が非常に高い現場でのモニタリングを想定して開発が行われることが多い. そのため,小規模な地域での観測や,経済的余裕が少ない現場での観測といった目的においては,高い初期費用の用意ができず導入が難しいというのが現状である. 仮に導入したとしても,導入コストが期待する効用に見合わず,継続的に運用することができないケースも多い. 小規模な環境への導入を進めるためには,現場で必要とされる最小限の機能をもつ低価格のセンサノードを作成する必要がある. しかし,センサネットワークで観測しようとする現場において,現場状況に精通した専門家であっても,どのようなデータを取れば十分であるかを事前に判断できないという問題がある. 専門家は,観測した事象についてはきわめて詳細な知識を持っている一方で,その事象を観測するために必要なセンサの性能,個数,配置箇所,観測期間といった情報を持っていない. そもそも,そのような詳細なデータを取得した経験がないが故に,センサネットワークを用いて詳細に観測したいのである, 故に,その情報を最初から保持していることを期待すること自体に無理がある. センサネットワークを設置する現場においては,センサネットワークの開発者にも現場の専門家にも,観測前には要求 仕様が分からないことは当然であるともいえる. そのため,専門家が必要とするデータが十分収集できるセンサネットワークを構築するためには,現場でのインタラクティブなシステム開発が求められる. すなわち,データを取る実験を繰り返すと同時に,どのようなデータの取り方をすれば目的の事象が観測できるのかということを,専門家とシステム開発者とが議論を繰り返して進めるというプロセスが必要になる. このプロセスの過程では,最終的なシステムの効用がはっきりしないまま,データ取得実験を繰り返す必要がある. その過程では,システムが廉価であること,設置位置の変更等が容易であること,システムの拡張性の高さ,開発の容易さといった要件が求められる. 一方でこの段階では,高い精度や信頼性,処理の高速さといった要件は必要とされない. このプロセスが終了し,センサネットワークに求められる要求仕様が確定した段階で,改めて必要最小限の精度,信頼性,処理の高速性といった要件を満たす,最小コストで作成可能なシステムを設計すればよいと考えられる. 以上のことより,CILIX は廉価なセンサノード上で動作させて,現地でのデータ取得実験を繰り返し,センサネットワークに必要な仕様を確定させる用途に向いた,テストベッド用仮想マシンとして設計を行った. まず,開発者のアプリケーション作成コストを抑えるため,既存の開発環境を利用して開発できる中間言語に対応した. 具体的には,.NET Framework で使用できる言語で記述されたプログラムを,そのまま実行可能なCIL 仮想マシンとして設計した. 次に,さまざまな現場での要求仕様に答えられるように,センサネットワークのアプリケーションで使用される頻度が高い機能を,仮想マシンの組み込み機能として実装した. さらに,廉価なデバイスで実行可能なように,メモリ使用量を極力抑える設計とした. その一方で,処理の高速性や,.NET Framework クラスライブラリのもつ機能への対応という点については,大きく犠牲にしている. これらについては,テストベッドとして利用する上で,前述の他の要件を阻害しない範囲で,必要最小限の性能が得られるよう実装している. 3.2 互換性 仮想マシンを導入する最大のメリットは,ハードウェアを抽象化することで,ハードウェアのアーキテクチャの差異を気にすることなく,ソフトウェアの開発ができることである. そして,既存の仮想マシンを移植する場合においては,既存の開発環境やソフトウェアとの互換性が大きなメリットのひとつになる. このメリットを享受できるようにするために,CILIX が既存のコンパイラで生成されたCIL プログラム(exe ファイル) を,ほぼそのまま実行できるように設計した. ただし,計算資源の少ないデバイス上でCLR やMono との完全な互換性をもつランタイムシステムを実装することはほとんど不可能である. そのため,センサノードで使用することがほぼないと考えられる機能を省いた,CLI のサブセットとしてCILIX を設計した. これにより,省メモリ化と互換性の両立を図った. 3.3 利便性 CIL 仮想マシンは,仮想化されたCPU として設計されている. そのため,数値演算機能とメモリ間のデータ転送機能,プログラムの実行制御機能といった,一般の8bit/16bit CPU がもつ機能と同等の基本的な機能しか,仕様上は規定されていない. 仮想マシンの仕様にない機能の多くは,仮想マシン上に実装するCIL プログラムのライブラリとして実装することで,実現することができる. しかし,デバイスへの依存度が高いことから,CLI 上でのライブラリとしての実装が難しく,ランタイムシステムの機能の一部として実装されていることが望ましい機能がある. 具体的には以下の四つの機能である. ( 1 ) 実行するCIL プログラムを変更する機能(プログラムの動的な書き換え) ( 2 ) I/O の基本的な制御機能(センサ,無線通信チップへのアクセス) ( 3 ) マルチスレッド処理機能 ( 4 ) センサノード上のプログラムを他ノードから遠隔実行する機能 これらの機能は,実際にセンサノードを運用していく中で,必要とされた機能である. これらの機能は,既存の他のランタイムシステムでも採用されていることが多い. このため,CILIX をこれらの機能をランタイムシステム内に組み込みモジュールとしてもつ形で設計した. これらの機能のうち,マルチスレッド処理に関しては.NET Framework のライブラリと互換性のあるクラスの形で提供する. また,I/O アクセスについてはI/O ポートを仮想的なUDP ポートにマッピングし,UDP 通信のクラスライブラリを利用する形のインタフェースとした. これによりユーザは,特殊なライブラリの追加を必要とせず,.NET Framework のクラスライブラリのみを用いて,センサノードのプログラムの作成を行うことができる. 3.4 省メモリ 8bit/16bit のCPU は,搭載するメモリ(EEPROM/Flash Memory/RAM) の量が増えると,それがそのままCPU の価格の上昇や実装面積の拡大につながる. つまり,仮想マシンが使用するメモリの量を抑えることで,コストが低く小さなデバイス上で仮想マシンを動すことができるようになる. そこで筆者らは,仮想マシンの動作するメモリの搭載量の下限を,EEPROM (Flash Memory) 32KB, RAM 4KBとした. このスペックのデバイスは,2013 年の実売価格で$ 5 以下で調達が可能である. これを超える性能の8bit/16bit のCPU は,32bit のCPU の価格との差異が少なくなる.そのような価格帯では,8bit/16bit のCPUを採用するメリットは薄い. また,2 章で挙げた他の仮想マシンやOS と比べても十分に小さいものであり,既存の多くのデバイスで動作させることが可能である. これらの点を考慮して,上記のメモリ量を動作要件の下限とした. 4. CILIX の実装 CLI の仕様はECMA-335 [18] により規定されている. CILIX はECMA-335 に準拠し,CIL 中間言語を実行することができる. ただし,Visual Studio やMono コンパイラの生成するexe ファイルには,CIL 中間言語やMetadata table のすべてが含まれるわけではない. 筆者らは,従前のコンパイラが出力するexe ファイルを精査し,コンパイラが出力しないオペレーションコードやMetadata table およびSignature については実装を行っていない. これにより,CILIX の実行バイナリサイズを32KB 程度のサイズにまで抑えることができている. 以下,CILIX の構造の概要と,CILIX を使ったアプリケーション開発方法について,その概略を説明する. 4.1 CILIX の構造 CILIX のランタイムシステムは,次の四つのモジュールで構成される. ・仮想マシンモジュール:CIL プログラムをメモリから読み出して実行するモジュール ・プロセス管理モジュール:仮想マシンの起動や停止を行う. またCLI の仕様外の機能として,メモリ上のプログラムの書き換えを行う機能も含む. ・デバイス非依存I/O 制御モジュール:I/O 制御に必要な機能のうち,デバイスに依存しない機能を提供するモジュール. 主に文字列変換処理を行う. ・デバイス依存I/O 制御モジュール:I/O 制御に必要な機能のうち,デバイス毎に書き換える必要のある機能を含むモジュール. 図1 にCILIX の構造を示す. CILIX は,これらのモジュールと,Metadata Pre-Processor (MPP) とよぶプログラムで構成される. MPP は実行ファイル(PE ファイル) に前処理を行い,プログラムデータを圧縮することで,使用するプログラムメモリの領域を削減できる. MPP はPE ファイル(.exe) からCILIX の実行ファイル(.hex) へ変換を行う. 4.2 CILIX によるアプリケーション開発 CILIX を用いたアプリケーション開発は,Visual Studio (Express Edition を含む) およびMono のコンパイを用いて行うことができる. 現在動作を確認している開発言語は,C#, Visual Basic, C++/CLI, J++, およびF# である. Visual Studio のバージョンは,2005, 2008, 2010, 2012 でそれぞれ動作を確認している*1(*1 Express Edition を含む). Mono ではC# のみ動作を確認している. 対応しているMPU (デバイス) としては,ATMega128L(8bit), MSP430 (16bit), TWE001 (32bit), ARM7 (32)がある. 図2 に示すデバイスは,上の段の左から順に,MSP430, TWE001(小型版), TWE001(有機EL 版),TelosB(MSP430), ATMega128L である. 左下は.NET Micro Framework が動作する.NET Gadgeteer FEZ Spider Mainboard (ARM7) を,サイズの比較のために掲載している. CILIX は,それぞれのデバイスで動作可能なバイナリファイルとして提供される. EEPROM とFlash Memoryとを持つデバイスでは,CILIX をEEPROM に書き込んでおき,Flash 側にC# 等で記述したプログラムをMPPで変換した後の.hex ファイルを書き込む. このMPP はWindows の実行ファイルとして提供している. MPS430とTWE001 に関しては,データの圧縮とFlash への書き込みを同時に行うプログラムを用意している. なお,Flash に書き込む方法以外に,SD カードの先頭領域に書き込んでおき,SD カードからプログラムを起動させる方法と,無線経由でプログラムを書き込む方法を提供している. 現在,MPS430 とTWE001 で作成したデバイスについては,無線経由でプログラムを書き換えるためのWindows 側の転送用プログラムを用意している. 5. 適用事例 CILIX と無線小型センサノードを利用して行った2 件の研究事例と,2 件の実フィールドでの実験事例について紹介する. 5.1 ウェアラブルコンピューティング環境への適用 寺田ら[19],および武田ら[20] は,ウェアラブルコンピューティング環境下において,ウェアラブルコンピュータとデータの送受信を行う機器間の,データフローのディペンダビリティを担保する技術について研究を行った. ウェアラブルコンピュータは,屋外や危険地での作業に利用されることもあり,PC やそれに接続されている機器の故障する確率が高い. 作業中にPC や機器が故障すると,作業が中断されたり,場合によっては情報不足による事故が発生する可能性がある. これを防ぐため,PC に故障が発生した時には,一時的に入出力デバイス間でデータを直接送受信できるようにし,データの表示が停止しない仕組みを提案した[19]. 入出力デバイス間での直接のデータ送受信を可能とする方法ために,表示デバイスや入力デバイスに無線通信デバイスを搭載し,そのデバイス上で動作するファームウェアを使って,データフローの制御を行えるようにした. このファームウェアを動作させるミドルウェアとしてCILIX を用いた. CILIX を利用することで,アーキテクチャの異なる各デバイス用のファームウェアを,Visual Studio を利用して統一的に開発することが可能となった. また,ウェアラブルPC 上で動作するOS の多くはWindows であることから,PC 上で動作するアプリケーションの開発と同じ開発環境でファームウェアの開発を行えることも,開発の容易さを高める要因となっている, さらに,CILIX の無線通信によるプログラム書き換え機能を利用することで,ファームウェアを必要に応じて遠隔でアップデートすることも可能である. この機能を用いることで,実験結果をもとにファームウェアを頻繁にアップデートするというプロセスを効率的に進めることができた. 図3 は,構築したシステムをヘルスケアシステムに適用した例を示したものである. ランニング中の人間の健康状態をモニタリングして,図の上部のような表示内容をHMD に出力するアプリケーションである. 仮にランニング中にPC が停止しても,心拍センサや呼吸センサなどから表示デバイスに直接データが無線経由で送信されるため,PC の再起動中でも表示が途切れることはない. またHMD が故障した場合は,すぐに予備の小型有機EL つきデバイスにデータが転送され,そのデバイス上でデータを確認することができる. システムの復旧や交換後は,再びHMD などのデバイスにデータを転送することで,表示を復旧させることができる. 5.2 データ圧縮実験への適用 CILIX を用い,センサデータの圧縮手法に関する研究の評価実験を行った事例について紹介する. 圧縮手法としては,岸野らが提案する特異値分解と階層型ネットワーク構造を利用した非可逆データ圧縮方式[21] と,柳沢らが提案するLDPC を用いた可逆データ圧縮方式がある[22]. センサデバイスとしては,MSP430 およびTWE001 の二種類のデバイスを用いた. TWE001 デバイスの仕様と概観について図5 に示す. 階層型ネットワークを利用したデータ圧縮方式では,データを中継するノードに集まったデータに類似する特徴を特異値分解によって抽出し,特徴を強く示す基底データのみをサーバに送る方法で圧縮を実現する. LDPC を用いる方法では,各ノードが観測するデータの相関性を利用し,単独のノードで観測したデータを圧縮するよりも,高い圧縮率で可逆圧縮する技術である. これらの技術を実データで試験するために,CILIX を搭載したセンサデバイスを用いた. 図4 は,室内外に配置したセンサノードで温度を計測し,マルチホップ型センサネットワークを構築して,データの収集を行っているデモ実験の様子を示したものである. これらの手法によるデータの圧縮率は,観測するデータの特性によって大きく変化することが予想された. そのため,性能を十分に評価するためには,室内外のさまざまな環境下でデータを長時間にわたって取得する実験を行う必要があった. このように環境を変えて実験を繰り返すケースにおいて,CILIX によるプログラムの開発の容易さや,プログラム書き換えコストが低いことが,実験コストの低減に役立った. 5.3 施設園芸での栽培環境モニタリング事例 個人農家において,ビニールハウス内の栽培環境が均一であるかを調査する目的で,ハウス内の環境モニタリング実験を,長野県佐久穂町との共同実験として行った. 栽培品目は,切花として商業価値が高いトルコギキョウである.トルコギキョウは,昼間の日射量,日光の強さ,温度の日較差などによって,作柄に大きな差異が生じる品目であり,農家の工夫次第で収益が大きく増減する作物のひとつである. 本実験では,ハウス内の温度,湿度,照度の環境が均一であるかを調べることを目的に実験を行った. ハウスは45m×6m の面積をもち,作物は5 列に並べて栽培されている. ハウスの長辺が南北方向に向いており,一日の日照量がハウスの東側,西側で異なっていることから,温度分布が各地点で異なるのではないか,ということは農家の経験的に知られていた. この実験では,当初センサの配置個数や頻度,必要な電池量等のパラメータが分からず,10 個のセンサをハウス内の南北の辺に各3 つと,中央に3 つ,それぞれ地上10cm の位置に配置してデータの観測を行った. その後,データの内容を見ながら農家と配置法について検討を行い,4 回にわたって配置変更やプログラムのアップデートを繰りかえした. その結果,20 個のセンサを使い,地上10cm と1.5mの位置に配置して温度と照度の計測を行うことで,日射量や温度の差異を取得できることがわかった. 最終的に,農家が予想していた日射量の差が,ハウス内で1 日の間に最大3 時間もの差があることが分かった. 栽培品目によって必要とされる日射量が異なることから,来年度の栽培時には今回の観測結果をもとに,品目の配置を変更することを予定している. 本実験に関しては,次回の栽培時に配置変更によって作物の作柄の改善が生じたかを検証する予定である. 図6 は,農家のビニールハウス内にCILIX を搭載し,温度,湿度,照度のセンサを接続したTWE001 デバイスを,防水型ケースに入れて設置した様子を示している. 5.4 作業環境の温湿度調査の事例 節電対策が行われた企業のオフィス環境が,作業に適した温湿度から大きく逸脱していないかを調べるための,実フィールド実験を行った事例について紹介する. 本実験は,次の三つの目的で行われた. 最初の実験は,冬季の節電による室内の温度低下により,室内の一部で想定温度(19 度) を下回っている地点がないかを確認することを目的とした. 次の実験は,夏季の節電によって室内の温度に大きく偏りが生じているときの,サーキュレータ導入効果の有無を調査する目的で行われた. 最後の実験は,通年における実験室の温度調節を最適化するための,空調の設定方法や作業設備の設置位置,扉の開閉の調整方法の検討を行うことを目的に行った. 本実験でも,当初センサを設置する位置や測定頻度などの条件が分からなかったため,20 平方メートル程度の部屋の中に50 個のセンサを密に配置し,10 秒間隔でデータを取得する形で実験を開始した. センサは部屋の外側の廊下や,窓の外(屋外)にも配置した. 同じ地点であっても高さによる温度の変化がある可能性を考え,床上5cm, 1m,2m といったように複数の高さに配置した. この状態で実験を開始し,観測されるデータを見ながら配置の変更や,頻度の変更(プログラムの書き換えによる頻度変更)を行い,最適化を図った. 最終的にはセンサ10 個を要所にのみ配置し,1 分間隔でデータを取得しておき,それらのセンサで観測される温度が19 度以下とならないように空調の温度設定をすることで,室内の温度が19 度以下になることを防ぐことができるようになった. 他の実験でもほぼ同様の手順で,作業環境測定の専門家の意見を聞きながらシステムの要件の決定を行った. この過程で,センサの配置変更を頻繁に行い,50 個のセンサノードのプログラムの書き換えを行った. しかし,電池駆動の小型センサを用いたため配置変更はきわめて容易であった. また,プログラムの書き換えについても無線経由での書き換え機能により,手間を大きく削減できた. 最終的に配置位置や測定頻度が求められた後に,センサデバイスを大型化し,電池も大容量なものに変更することで,コストと必要な性能がつりあうセンサノードを設計することができた. ----------------------------------------------------------------------------------------------------------------------------------------------------------- 2013年3月22日(金) IT農業プロジェクト研究会 at東京大学 佐久穂げんでる農業の試みとその展開活動 ~ 小さな気づきを大切に ~ 本日は、皆様と「小さな気づき」の大切さについて、「分かち合い」をさせて頂く機会を与えて頂き、本当にありがとうございます。 今日は、「農業」の分野でのちょっとした体験流や、半田ごてを手に持って、回路を作っていた若いころからの体験流を素材にしながら、皆様とインタラクティブに「小さな気づき」を分かち合いをしながら、農業ICTの世界でも、技術屋 (これは「技」と「術」の両方の意) で生活できることの面白さ・幸せなどについて「分かち合い」をさせて頂ければ 幸いです。 「小さな気づき」活動を、地域において、自然(観光)、農業、健康分野で、 ・山小屋のおじさん達と、 http://www.kitayatsu.net/ ・佐久総合病院の方々と、http://www.msakunet.info/yachiho50 ・都会の企業の方々と、 などと、ご一緒に、クラウド環境を利活用したソーシャルキャピタル(社会関係資本)醸成活動・地域イノベーション活動・クリエイティブ活動を進めながら、 ・スローなユビキタスライフ、 http://www.msakunet.biz/ubiquitous-life をおくっている例を、今回は「農業」を中心に、お話させて頂きます。 (左上写真: 花き栽培ハウス。 右上: PC上におけるデータ表示) (左下スマートフォンアプリ: 左上:ハウス内のセンサー設置ポイント表示。右上:一日の温度・湿度変化のデータ表示) (右下スマートフォンアプリ: 真ん中の写真:時間軸上でタッチした時点の画像の拡大表示) 「匠の技継承・人材育成手法の開発」では、農業現場において、技能継承・人材育成に係る情報を収集し、農業の匠が持つ暗黙知を映像技術と認知モデル化技術を用いて「見える化」、および形式知化を図り、匠の技の継承、人材育成の実現のための手順・手法の体系化を目指しています。 多くの匠の方々へのインタビューをおこない、それらを映像ナレッジライブラリー化し、その映像内容・対話を分析しました。 その結果、体験・経験の豊かな、篤農家の「匠の技」と言われているものは、単なる「形式知」では表現・構造化しきれない、いわゆる「暗黙知」を含むものであり、それは、ビジョン・動機などを駆動目標とし、経営レベル、技術レベル、作業レベル、個々のタスクレベルからなる総合的な目的志向・階層構造を持っていることが見えてきました。 一方、匠から学ぶ個人(新規就農者など)にとっての基本的課題として、「何を聞いていいのかがわからない」ということを良く耳にします。 これは、何のどこを見て(「知覚」したものは何か)、知覚したことをどのように「解釈」し、「評価」すればいいのか、やりたいと思ったこと(「ゴール」と「意図」)から、実際に行い得る身体動作(「行為系列」)のどの行為をするかを特定した後で、それを「実行」するという7段階(これを「匠の認知モデル」と呼ぶ)の各段階で、「匠」の「身体/認知/精神活動」との視点・観点の相違が生じていることに起因していると思われます。 このことは、個々のタスクレベルのスキルを「まねる・学ぶ」ことから、自らの中に匠の世界観(匠の技の階層モデルTHiMで表象化された世界観)を、総合的に再構築していく(匠の技継承モデルと呼ぶ)ことが必要であることを示唆しています。 上述の「匠の技継承モデル(TInM)」に示唆される、匠の視点・観点・世界観を総合的に再構築していくことを支援するために、生産プロセスの各段階(荒起こし、代掻き、田植え、稲刈りなど)におけるフィールド調査(多数カメラによる多視点映像撮影)、現地インタビュー調査を実施し、収集された多数の映像のライブラリー化と多視点・多画面映像制作を行いました。そしてその多視点・多画面映像コンテンツを実際に匠の方に再度観察して頂きながら、匠が持つ暗黙知を含む、匠の視点・観点・世界観に関するコメントを付加する作業(暗黙知の「見える化」、および「形式知化」作業)を行い、匠の技継承・人材育成のための「匠コメント付き多視点映像コンテンツ」を制作しました。 この「匠コメント付き多視点映像コンテンツ」は、実際にフィールド調査させて頂いた農場の経営者に加えて、他の地域にある農業法人の経営者にも見て頂き、匠の技継承・人材育成手法として有効であるとの評価を頂きました。 (左上: 「多視点映像コンテンツ」に対する「匠コメント付与」作業の様子) (右上: ヘリコプターカメラ、GPS軌跡、固定カメラ、匠のアイカメラ、キャビン頭上カメラ、追尾カメラからなる多視点6映像の同時提示。重要なポイントでは、匠のコメント付き映像が拡大表示される) (下2枚: 6映像の多視点映像に加えて、右上に匠自身の映像を埋め込み、実際に匠が再度6映像を観察しながら、 その時の状況を想起し、経営レベルなどを含めた総合的な視点・観点などを説明している7映像) これまで述べてきた研究においては、主として個人の認知レベルに視座をおいて、農業の匠が持つ暗黙知を「見える化」、および形式知化を図り、匠の技の継承、人材育成の実現のための手順・手法を開発してきています。 一方、フィールド調査(例えば田植えのケース)における観察・分析より、「匠の技継承・人材開発手法の開発」のためには、個人の認知レベルの視座に加えて、複数の農業作業参与者の間の協働作業(Collaborative Work)を分析し、モデル化していくことの必要性を見出しました。 そこでは、協働作業において共通の目的を達成するためプロセスを協働して達成していくための認知モデル、すなわち農業における「協働作業プロセスモデル:CoPM(Collaborative work Process Model)」が必要になってきます。 【⇒下の画像をクリックすると拡大表示してご覧頂けます。】 |