project12.pdf

プロジェクト報告書 Project Report
提出日 (Date) 2012/01/18
スマート FUN プロジェクト
Smart FUN Project
b1006080 山田 格 Kaku Yamada
1 背景
グループリーダーは、グループ全体のスケジュール管理
を行う。技術リーダーは、率先して技術を習得し、他の
近年、インターネットや携帯電話の普及率は増加し続
メンバーの技術習得の手引きを行う。また、グループの
けており、現在では世代を問わずインターネットや携帯
副リーダーとしてグループリーダーの補助を行う。他の
電話を利用して相手と連絡を取り合ったり、情報を共有
メンバーは、プロジェクトリーダーから割り振られる
することが当たり前の時代となった。しかし、これらの
様々なタスクの責任者となり、開発に取り組む。
ネットワークを利用する際にはサーバやアクセスポイン
トを利用する必要がある。そこで今「自律分散型ネット
3 課題解決のプロセスとその結果
ワーク」が注目されている。自律分散型ネットワークと
プロジェクトを行うにあたり、プロジェクトリーダー
は、近傍にある無線端末同士が数珠つなぎにつながって
の決定と開発班を 2 つの班に分かれ、それぞれのグルー
いくことで大きなネットワークを構築する。自律分散型
プリーダー、技術リーダーを決定した。この組織形態で
ネットワークは耐障害性に強く、運用管理が容易である
プロジェクトリーダー、グループリーダーが中心となり
為、災害現場などのネットワークの利用状況が事前に予
プロジェクトを進行した。前期では機能毎に班編成を行
見不可能な場所で大いに活躍すると考えられる。本プロ
い「ネットワーク班」「地図班」に分かれ、開発を行っ
ジェクトでは自律分散型ネットワークに注目し、それを
た。後期では、各プラットフォームごとのほうが連携が
用いたアプリケーションの開発を行う。
取りやすいということになり「Android 班」
「iOS 班」に
2 課題の設定と到達目標
再編成を行った。各班にはグループリーダーと技術リー
ダーを各一名ずつ決め、グループリーダーには各班のメ
本プロジェクトでは、省電力である携帯デバイスなど
ンバーの管理などを行い、技術リーダーは技術習得、開
を用いて自律分散型ネットワークを構築し、FunMap を
発において率先して行い、技術習得の手引きを行った。
作成するというのが目的である。ここの自律分散型ネッ
また、メンバー間でのスケジュールや成果物、意思の共
トワークとは、サーバを使わないネットワークであり、
有においてはサイボウズ社の「サイボウズ Live」を用
FunMap は、リアルタイムで公立はこだて未来大学の学
いた。
内の情報をユーザーが共有することが出来る Map のこ
とである。
アイディア提案については、プロジェクトメンバー全
員で自由にアイディアを考え、そのアイディアを全員で
そこで、この目的を果たすために最近流行の兆しを見
審議し x 軸に実用性、y 軸に面白さのグラフ上で分類分
せている携帯デバイスである、スマートフォンの An-
けを行い、実用性、面白さの高いものを検討し、開発す
droid・iOS(iPod touch,iPhone,iPad) などの Bluetooth
るアプリケーションを決定し、開発アプリケーション名
通信機能を使って自律分散型ネットワークを構築でき、
を「FunMap」とした。本プロジェクトでは、中間発表
かつ位置などの情報を地図上に表示できるアプリケー
の際に成果物をあげるためにアイディアの中から汎用
ションを作成するのが本プロジェクトの目標である。
的に使用できるものとして位置情報を抽出し、開発へと
プロジェクトリーダーは、上記の目標を達成できるよ
着手した。アイディア決定後、開発アプリケーションを
うスケジュールをたて、議事の進行と意見の取りまと
作るために必要なものを決定し、スマートフォンの各プ
め、スケジュール管理を行い、様々な作業に責任者を割
ラットフォームでの実装方法についての調査などを行
り当てて、その責任者の作業に対し管理、補佐を行う。
い、予算をどのように使うのかを全員で検討した。
ムで閲覧することができる。この情報をもとに、大学生
FunMap とは、スマートフォン・タブレット PC の Blue-
活を効率化し、スマート化できるアプリケーションが
tooth を用いた自律分散型ネットワークでの位置・文字・
画像情報の通信を行うアプリケーションである (図 1, 図
2)。
「FunMap」である。
前期のアプリケーションの開発について、iOS 班では
成果として、Objective-C の基礎技術、Xcode の使用法
主な機能としては「Bluetooth 通信機能」「位置情報
の取得、開発環境の構築、位置情報を取得し表示する機
機能」「つぶやき機能」「掲示板機能」「カメラ機能」で
能の実装、Bluetooth 通信機能の実装、データベース作
ある。これらの機能はそれぞれが独立しているのではな
成技術の取得、ユニバーサルアプリケーション開発技術
く、相互的に呼び出して実行されアプリケーションを動
取得、作業の分担・連携の手法取得、アプリケーション
かしている。Bluetooth 機能によって、インターネット
の企画・提案の手法取得などが挙げられる。開発環境の
やサーバを用いず、自律分散型ネットワークの基盤とな
構築では iMac,MacBookPro を用いた。プロジェクト
るシステムを構築できる。これによって以下の機能に
開始当初は開発環境がなく、先生から MacBookPro を
よって取得した情報を端末間で共有が可能となる。位置
お借りした。iOS のアップデートを行い、AppleID の登
情報機能では、スマートフォンで現在の位置を知るため
録した。その後、iPhone SDK (Software Development
には GPS などがあげられるが、屋内での GPS の精度
Kit) のインストール、iPhone Developer Program、証
では、FunMap の想定する使用に難があるため別の方法
明書、AppleID、Provisioning Profile の登録を行い、作
を検討することとなった。そのため、本プロジェクトで
成した Provisioning Profile を Xcode で設定すること
は本学内に設置してある無線 LAN の一つの fun-wlan
によって開発環境が構築できた。また、iPad を 1 台、
用のアクセスポイントを用いることにした。学内のアク
iPad2 を 1 台、iPod touch を 1 台を予算で購入し、アプ
セスポイントは固定であり、多数点在しているので、そ
リケーションの実機テストに使用した。
れを使うこととした。端末が受信した電波強度が強いア
Android 班の成果としては開発環境の構築、開発す
クセスポイント 3 つの座標と電波強度から、端末の位置
る上でのレイアウト技術などの取得、位置情報を取
を算出し、座標で出力する。3 点のアクセスポイントの
得、描画するためのプログラムの作成、Bluetooth 通
位置と、そこからの距離がわかれば、端末の位置が求め
信の精度調査と簡単な機能の実装、データベースの調
られる。しかし、電波強度は、その時の状況などで、値
査が挙げられる。開発環境の構築では、各々の PC に
が一定になることは無く、同じ位置でも異なった電波強
JDK (Java Development Kit) のセットアップ、An-
度が出て、電波強度が同じ値でも距離が同じでないこと
droid SDK(Software Development Kit) のセットアッ
がある。そこで、本プロジェクトではアクセスポイント
プ、eclipse のセットアップを行った。また、必要な場
からの距離を求める際に、電波強度の値を用いて場合分
合は eclipse に日本語パッチをあてるなど最適な開発環
けを利用することにした。計算方法は、3 点の重心を求
境を整えるために各々工夫を行った。制作したプログラ
めることにした。アクセスポイントの座標をベクトルと
ムを動かすために契約せずに使用できる Android 端末
し、電波強度を重みとして用いて、3 点の重心を求める
をさがし、その結果担当教員の私物である「Light Tab」
方針とした。この方法によって、アクセスポイントを 3
を 1 台と「XOOM」を 1 台を使用し、さらに「XOOM」
点から電波を受信できれば、必ず解となる座標が求める
1 台を購入することとした。実機で動作を確認する際に
ことができる。つぶやき機能・掲示板機能では、上記の
は各端末に対応したドライバをインストールした。
位置情報機能によって求めた現在地と掲示板に twitter
ネットワーク班では学内のアクセスポイントの場所や
のようにつぶやきを表示する。ユーザーが自身の周りの
電波強度などの調査を行ない、調査結果を元にアクセス
状況などを他のユーザーと情報共有するための機能で
ポイントに関するデータベースを作成した。アクセスポ
ある。またカメラ機能も同様に、カメラ機能が使える端
イントから位置情報を取得するために三角測量を行い、
末では, 周囲の状況を画像として、他のユーザーと情報
自分の位置の座標データを求めるための式を作った。そ
共有することが可能になる。これらの情報をリアルタイ
れらを使い、位置情報を取得し、画面上に表示させるア
プリケーションを作成した。これらのことより、ネット
ぶやくことができた。地図などのデザイン、UI の作成
ワークに関する知識やアプリケーション開発の技術が身
地図は精度を上げるため再測量を行い、作りなおした。
についた。また、端末間での Bluetooth 通信を行なうア
またボタンなども使った人が分かりやすいようにデザイ
プリケーションの作成も行い、実際に端末間での通信、
ンを変更した。その他細かい機能を設定を行い、地図上
データのやり取りが可能になった。地図班ではネット
のピンを消すボタンや現在位置を手動で変更できる機
ワーク班が位置情報の取得を行うまで、基礎技術の取得
能、また、地図をデザイン変更ボタンも追加した。
を行った。基礎技術の取得は主に書籍を用いて行い、実
Android 班の成果は、前期に作成したアプリケーショ
装したものは画像のスクロール、画像のタブ切り替え、
ンを拡張し、機能を作成していった。Android 班の主
Edittext と button をもちいたチャット機能の基礎画面
な成果は、公立はこだて未来大内での位置情報の取得、
の構築などである。取得する際は位置情報を取得し、描
公立はこだて未来大学内地図の作成、Bluetooth を用
画できた時を想定し今後の発展に使用できそうなもの
いた自律分散型ネットワークの構築、ネットワークを
を中心に行った、次に実際に位置情報を描画するための
利用した掲示板の作成、UI の調整があげられる。まず
地図の準備をした。まず参考にする地図としてオープン
FunMap では同アプリケーションを起動したペアリン
キャンパスで使用されている地図を用いたが、この地図
グ済みの相手複数と自動で Bluetooth 通信を行うこと
は真上から見た平面図ではなく、位置情報を描画して今
が可能である。Android の API には Bluetooth に関
後調整をかけていくには不適切であった。次に参考にし
するものがあるが Bluetooth による通信を全て自動で
た地図が学生便欄に用いられている地図であった。この
やってくれるわけではなく自動で通信を行うためにス
地図は真上から見た平面図であるため位置方法を描画す
レッドなどの仕組みを用いて通信を行った。ここで作成
るには適していた。まずその時点でネットワーク班が位
した自律分散型ネットワークは本プロジェクトの成果の
置情報の取得を行っていた研究等の地図を準備すること
一つである。Android 班で開発した FunMap を見てみ
にし、研究棟 2 階地図のトレースを行った。その後研究
ると Android 端末 3 台を用いての Bluetooth 通信に成
棟 1 階、本棟 3 階、4 階、5 階の地図を準備した。
功した。よって Bluetooth を用いた自律分散型ネット
後期のアプリケーション開発では、iOS 班の成果は前
ワークの構築が成果としてあげられる。FunMap を作
期に作成したアプリケーションを拡張し、機能を作成し
成するに当たって学内の自分の位置を知るために地図を
ていった。iOS 班の主な成果は、すれ違い通信の実装、
作成した。この地図は便覧の地図を参考に公立はこだて
Bluetooth での送受信、SQLite を使用したデータベー
未来大学の研究棟を (0,0,0) の基準点とし各部屋、区画
ス操作、つぶやき機能の作成、カメラ機能、掲示板の作
ごとにメジャーを用いて計測したものである。そのため
成、地図などのデザイン、UI の調整があげられる。す
便覧の地図より正確な縮尺でそれぞれの部屋や通路が表
れ違い通信では、Bluetooth での送受信近くに居る端末
示されているため、地図による誤差の少ないものとなっ
に Bluetooth を用いて情報を送信を行い、受信側は受
ている。FunMap ではアクセスポイントの無線強度を
け取った情報を更新することにより、自立分散型ネット
用いて、公立はこだて未来大学内の位置 (3F) を表示し
ワークの構築が可能になった。また、データベースの使
ている。まず自分の現在地を算出するために大学内のア
用データベースを使用することにより、アプリケーショ
クセスポイントに座標を振った。ここで現在地を算出す
ンを起動していなくても保存し続け、上記の Bluetooth
るのに GPS を使わなかったのは室内の細かな場所の特
での送受信したデータや、アクセスポイントの座標など
定には不適当だったからである。そして自分の現在地を
を保存する。また後述する場所別掲示板もここで操作し
算出するために自分から電波強度の強いアクセスポイン
た。つぶやき機能、掲示板、カメラ機能つぶやき機能に
ト 3 点、または 4 点を特定し、そのアクセスポイント
より現在居る場所にコメントを残すことができる。そ
の座標と電波強度から位置情報を算出した。これらの処
のつぶやきは掲示板として、まとめて表示を行う。この
理から一座標を算出したことも成果の一つである。また
コメントを上記した Bluetooth での送受信に使用する。
ネットワークを利用した掲示板の作成を行った。普通の
また、カメラを使用することができ、画像を付属してつ
掲示板はサーバを用いて情報の保存を行うが FunMap
の掲示板は各端末ごとのデータベースを用いるため、既
る基準には満たない。追加して実装する機能としては、
存のサーバにとらわれない情報の交換が可能である。
GPS などを用いて屋外での使用の検討、ユーザアカウ
本プロジェクトは、本大学で行われた中間発表会、最
ントや認証を用いたり自分の位置を他人に見せなくする
終発表会において成果発表を行った。中間発表における
などのプライバシーに配慮する機能、行動のパターンな
準備では、作成するアプリケーション「FunMap」のプ
どを記録しデータマイニングを行えるような機能、友達
ロトタイプ、発表スライド、展示ポスターの作成と、発
を検索したり、ダイレクトメッセージを送る、twitter な
表練習を行なった。本プロジェクトの特徴、自律分散型
どの外部アプリケーションとの連動などのコミュニティ
ネットワークについての説明、開発アプリケーションの
性を重視した機能などがあげられる。また、動作の安定
説明について、実機デモンストレーションと共に説明し
化、異なるプラットフォーム間における通信などがあげ
たわかりやすいものに仕上げた。担当教員からのアドバ
られる。また、現在のソースコードでは開発者にしかわ
イスや、プロジェクトメンバー間での意見を取り入れる
からない部分が多数あるので、このプロジェクトを来年
ことで、何度も修正した結果、発表会では本プロジェク
も引き継いで行えるようにコメントによる説明などの準
トについてうまく表現できた。発表会当日には本プロ
備を行う必要がある。
ジェクトの活動内容を理解してもらうことができた。ま
た、発表会ではアンケートを行い、合計 65 名の来場者の
方に、発表技術と発表内容について 10 段階で評価して
頂いた。結果は発表技術が平均 7.01 点、発表内容が平
均 7.53 点であり、技術・内容ともに満足のいくレベルで
あったと思う。最終発表における準備では、「FunMap」
完成版、発表用スライド、展示ポスター、サブポスター
の作成と発表練習を行った。更に発表資料の捕捉として
アプリのデモを行う事となり、そのための操作説明書を
作成することとなった。発表用スライドでは、中間の発
図 1 iOS 画面
表内容に加えて、開発アプリケーションについて実機デ
モを操作説明書と共にうまく発表でき、本プロジェクト
の活動内容を理解してもらうことができた。また、発表
会ではアンケートを行い、合計 71 名の来場者の方に、
発表技術と発表内容について 10 段階で評価して頂いた。
結果は発表技術が平均 7.38 点、発表内容が平均 7.79 点
であり、このアプリケーションを使いたいかの項目では
86 %が使いたいという結果であった。これは中間発表
時にアプリケーションを使う意義が見当たらないと言う
図 2 Android 画面
意見が多かったことから考えると、アプリケーションを
使いたいと思えるような機能を実装できたための考えら
れる。
4 今後の課題
今後の課題として、アプリケーションにおいては、位
置情報精度の更なる向上があげられる。現時点での精度
からどの程度向上させる必要があるのか検討する必要
があるが、少なくとも今の精度では我々が使用を想定す