プロジェクト報告書（最終）Project Final Report

提出日 (Date) 2016/01/20

ロケーションベースサービスの展開

Implementation of Novel Location-based Services
1013112 笠井康平 Kohei Kasai
1 背景

そこで，AR 班では複数人で無人島を創造する新しいゲー
ムを提案する．位置情報によって，モノの見え方が変わるシス

本プロジェクトの目的は位置情報を用いた新しいサービス

テムを構築し，自分の手を動かして創造する楽しさと，プレーを提案，実現することである．現在，位置情報を使った既存のヤー同士のコミュニケーションの要素を取り入れた面白さをサービスでは，道案内システムや，自分の現在位置の周辺にあ実現する．直感的に操作できる簡単な仕様を目指す．環境がる飲食店や駅などを検索するサービスがあった．一方，エンどう変化したか，なぜ変化したのかを感じてもらうゲームの開ターテインメントの分野でも，Ingress や Geocaching といっ発を目指す．

た，特徴的な建物の位置に対応した陣取りゲームや，宝探し

2.2 課題解決のプロセスとその結果ゲームが見つかった．どちらも GPS を用いたシステムが主である．

AR 班では課題解決のためにソフトウェア班とハードウェア班に分かれ作業を行った．ソフトウェア班では AR マー

しかし，位置情報とは GPS によるものに限らず，室内でのカーを読み込んだ時の処理や表示する 3D モデルの作成を行位置情報もある．また，一般的な GPS では誤差が 10m 程度

う．ハードウェア班では実際にゲームを遊ぶためのブロックあるため，狭い範囲での使用や室内では有用とは言えない．そやフィールドの作成を行う．以下にそれぞれの班のプロセス

こで，エンターテインメントに限れば，室内での位置情報を取と結果について述べる．

得することは新しいサービスであると考えた．室内での人や2.2.1 ソフトウェア班のプロセスと結果モノの位置情報を用いて変化や動きのある遊びやゲームを提ソフトウェア面での設計として，上記の「季節を判別する案し実現する．近年注目されている AR 技術やドローンを使ための手法の決定と実装」，「AR マーカー同士の位置関係を用しデジタルな位置情報や変化，動きをアナログで表現する．

特定する手法の実装」，「端末で AR マーカーを読み取った際また，プレイヤをインタフェースとして活用することで，体に条件に応じて表示する 3D モデルの考案・作成」が課題としを動かしたり，画面外の動きを要素として加えることができて割り当てられた．季節を判別するための手法の決定と実装る．本プロジェクトでは AR 班とドローン班に分かれて活動については，端末のカメラで認識した色の情報を用いて判別し，そのような新しい遊びを提案し実現する．

することにした．その後，ハードウェア班と話し合いを進め，

2 AR 班の活動季節ごとの色を決定し，ハードウェア班がフィールドの作成を開始した．AR マーカー同士の位置関係を特定する手法の実

2.1

課題の設定と到達目標

AR グループでは AR 技術とブロック遊びを組み合わせたゲームを提案しようとした．そこで，いくつか課題があった．
まず，位置情報どういった形で利用するかであった．そもそも，AR 技術を用いるためにはマーカーとなる画像が必要になるので，そのマーカーを考案する必要もあった．また，位置情報の取得のしかたも考えなくてはならなかった．本グループの提案ではテーブルの上で遊べるゲームを想定しているので，範囲が狭く，正確な位置をとれるようにしなくてはならなかった．加えて，表示する AR のモデルも製作しなければならなかった．

装については，端末が認識した AR マーカー同士の位置を座標として捉え，その座標の情報で AR マーカー同士の距離が近いかどうかを判別することにした．また，端末で AR マー
カーを読み取った際に，マーカーを読み込んだ回数や設置された場所の季節といった条件に応じて表示する 3D モデルの考案・作成については，班員全員で話し合いを進め，どの条件で何の 3D モデルを表示するのかを決定し，作成を進めた．
そして，製作したソフトウェアがインストールされたアン
ドロイドタブレットをとおしてブロックを見ると，認識された丘，木，水のそれぞれのマーカー個数の組み合わせや，季節などといった条件に従って異なったモデルが表示された (表 1)．

名前の前に + が記載されているものは，そのものよりも下位

便性や厚みを考慮し，軽く，色の目立つものの完成を目指し，の条件も同時に満たされている場合には下位のものも表示さ

素材を模索し製作を進めた．また，フィールドについてはアカれた．モデルが表示される場所に関しては，それぞれのブロッデミックリンクでの発表に使用するための小さいものも製作

クの中心座標となっている．

した．

春の水ブロックには花弁の散った水溜りが，木ブロックにそこでハードウェア班ではブロックの素材を加工のしやすは桜が，丘ブロックには緑の山と兎が表示された．加えて，水い MDF でブロックを作成することにした．まだ，丘，水，木ブロックと丘ブロックが近い位置にあったときには蝶々も表のそれぞれのブロックの中に音のなるものを入れ操作感を持示された．夏の水ブロックには水溜りが，木ブロックには木たせたり，イメージを持ちやすいようにした．また，フィールが，丘ブロックには緑の山が表示された．加えて，水ブロック

ドにはのりパネと布を使用した．季節ごとの色の布をのりパが２つ近い位置にあるときには魚が，水ブロック２つと更に木ネに張り付けフィールドを作った．のりパネは軽くある程度ブロックがあるときには鳥も表示された．秋の水ブロックに丈夫であり加工もしやすかったので採用した．また，基本的には紅葉の散った水溜りが，木ブロックには紅葉した木が，丘ブは色が白なので布の色に干渉せず使いやすかった．

ロックには紅葉の山と猪が表示された．加えて，木ブロックが2.3 AR 班の今後の課題２つ近い位置にあるときには，鹿も表示された．冬の水ブロッ

本グループでは，将来的に制作物を幼稚園や小学校に設置

クには凍った水溜りが，木ブロックには枯れ木が，丘ブロックし，子供たちが環境について考えるきっかけを持つことを展望には雪の山と兎が表示された．加えて，水ブロックが２つ近いとしている．そのために今後の課題としてあげられることは，位置にあるときには，ペンギンも表示された．

まず最初に，本提案には夢中になれるだけの面白さがあるのかについて考えることである．そのために，AR 班では評価実表1

マーカーの数と季節毎の表示されるモデル験を行い現在までの提案についての客観的な評価を得た．最丘木

水春

夏

秋

冬012020002101+ 蝶々

100

緑の山，兎

緑の山

紅葉の山，猪雪の山，兎指しているので，この面から考えても改善が強く求められる．

010桜木

紅葉枯木

問題の解決には，さらなる環境変化のバリエーションが必要

001

花弁と水溜り水溜り

紅葉と水溜り凍った水である．将来的には，環境に自分が変化を及ぼしているといも高い評価を得られた要素として「3D モデルの変化」と「自+鳥分の手で動かすこと」があげられた．逆に「環境の変化」の要+鹿+魚+ ペンギン

素は低い評価であったので今後の課題としてあげられる．本提案の目標は，子供たちが環境変化について考える遊びを目う感覚を強くするために，フィールドに液晶パネルを用いる
また，緑の山に関しては，読み込んだ回数によって変化が発生した．具体的には読み込む回数を重ねるにつれて，兎が草を食べるという理由から山の緑が減った．緑が減った山に対して，水ブロックを近づけると，緑が元に戻った．また全てのことで，インタラクティブな変化を起こすことが目標である．
総合的な評価には良い評価が得られたことから，提案の方向性はこのまま進めていき，全体の精度を高めることで面白さの向上が測れると考える．

動物オブジェクトは動きを伴い，一定間隔で幾つかの動きを行った．

2.2.2

ソフトウェア班のプロセスと結果

3 ドローン班の活動
3.1 ドローン班での課題の設定と到達目標

ハードウェア面の設計として，上記の「AR マーカーとしてドローングループでは三次元の位置情報を，縦・横方向の情使用するブロックに用いる素材決定とブロックの作成」，「ブ報に高さを加えたものと定義した．そこで，三次元の位置情報ロック遊びに用いるフィールドの作成」が課題として割り当を持つものとして飛行する対象を制御する．制御対象として，てられた．AR マーカーとして使用するブロックに用いる素小型のドローンに着目しこれを直感的な体の動作で制御する

材決定とブロックの作成については，積み木を意識しているスポーツを提案する．

ことから木材を使用し，なんらかの形で操作感を持たせつつ，大きく課題をドローンの制御とルールの制定の二つに分類加工が容易な素材を使用する方針で作成を進めた．ブロック

した．まず，ドローンの制御から着手し，制御の実現段階の程遊びに用いるフィールドの作成については，持ち運びなどの利度や自由度に合わせて随時ルールを制定する．ドローン制御

件を考えると，すべて Node.js で実装することで，ドローンの実装手順として，まずスポーツの基本動作であるボールのパとサーバでのやり取りが単純化されることが分かった．

スキャッチを実現すべくプロトタイプの作成に着手する．

3.2.2 クライアント班のプロセスと結果

3.2

ドローン班の課題解決のプロセスとその結果クライアントとしてスマートフォンを用いることにした．

ドローン班では課題解決のためにサーバ班とクライアントクライアントにはプレイヤの動作を検知するモーションアプ班に分かれ作業を行った．サーバ班ではドローンの操作をすリケーションとプレイヤの位置情報を取得するための位置情るためのプログラムを作成した．クライアント班プレイヤの報アプリケーションを実装する．しかし，プロトタイプ実装の動作を検知するモーションアプリケーションとプレイヤの位段階では位置情報アプリケーションの実装は見送り，モーショ置情報を取得するための位置情報アプリケーションを作成しンアプリケーションの実装にのみ着手した．

た．以下にそれぞれの班のプロセスと結果について述べる．

3.2.1

サーバ班のプロセスと結果

まず，モーションアプリケーションに，値の確認のためスマートフォンの加速度センサとジャイロセンサの値とその変Web サーバとドローン操作サーバの 2 つのサーバがあり，化のグラフを表示した．正しく投げたときの値を得ることをWeb サーバはスマートフォンからのデータを受け取りプレ可能にするため，ボタンを作成し，それを押すことで 5 秒間イヤに対して識別をするために ID を割り振る．そして Webの加速度センサとジャイロセンサの値を得られるようにした．

サーバを経由してプレイヤの状態を管理しているドローン操

そして，作成したボタンを押して実際に投げる動作をし，その作サーバに中継しドローン操作サーバから Bluetooth Low

時の X 軸，Y 軸，Z 軸それぞれのジャイロセンサの値の変化

Energy 経由でドローン本体へ前進や後退などの命令が送信さをグラフから読み取り，その結果を基に Z 軸のジャイロセンれ実際にドローンが動作するというものを実装した．

サの値が一定の値を超えたら 投げた と表示され，Web サー始めに，Web サーバについて，Web 上で扱われる基盤技術バに投げたという情報を送信する．そして，投げる動作をするである HTTP プロトコルやデータベースについて学習した．

ことでドローンが操作できるようにするため，スマートフォンその後，クライアントサイドであるスマートフォンからの操から Web サーバへ接続し，投げたという命令を HTTP 経由作を受け取るために Web サーバを Perl を使って実装した．

で送信することにした．実装は HTML と JavaScript を使っ

Web アプリケーションフレームワークは Amon2，ユーザのて行い，グラフ化を行うライブラリである D3.js を利用する管理のために SQLite データベースを利用している．クライ

ことによって加速度，ジャイロセンサの値をグラフに出力し，アント側からは HTTP 経由で操作を受け取ることができる．

投げる動作を行うときのセンサの値を可視化した．

次に，ドローン操作サーバについて，プロトタイプ作成に位置情報アプリケーションにおいて，クライアント端末において，Parrot MiniDrone Rolling Spider[2] を使用するこは，Android スマートフォンを用いることにした．よって，とにした．まずは Bluetooth Low Energy 経由でドローンAndroid アプリケーションを作成し，アプリケーションを端の操作ができるか，コンピュータ上で接続テストを行った．

末上で動作させることで位置情報を取得する．今回プロトタ

Node.js 上に実装された Bluetooth Low Energy 扱うためのイプ実装の段階では，位置情報アプリケーションを詳細に実装モジュールである noble を利用して，自動で前進操作ができるすることはしない．よって，どのような位置情報を取得するよう実装した．ドローンの Bluetooth 接続の問題から，Web必要があるのかという点をこの段階で調査することを目的とサーバ上に接続するのではなく，新たにドローン接続サーバをした．

作成した．構成としては Web サーバがドローン操作サーバへ結果として，プロトタイプが完成した段階で，実際にスマー操作の手続きを行うため，JSON RPC[3] 形式でやり取りすトフォンを持ち，投げる動作をしてみたところ，無事サーバにる．現時点ではドローン操作サーバがドローンの前進，後退の情報を送信することができた．しかし，投げる以外の動作を時度合を相対的位置として保存している．に投げたと判断されたり，投げる動作をしても投げたと判断さ

結果として，プロトタイプの開発によって，ドローンへの接れない場合が頻繁にあったため，それらの不具合が生じない

続から動作の命令やスマートフォンのジャイロセンサから投ようにする必要があった．また，ボタンを押さなければジャげる動作の取得ができた．プロトタイプ作成には，工数削減のイロセンサの値を取得できないため，投げる動作をするたびために Web サーバの実装に Perl を使ったが，本開発での要に画面を確認する必要がある．よりスポーツに近づけるため，

常にジャイロセンサの値を取得し，投げる動作のみでドローンの開発をした．位置情報を登録したプレイヤがスマートフォを動かすことができるよう実装する必要がある．

ンを持ち，投げる動作をするとドローンが相手のプレイヤの元

3.3

ドローン班の今後の課題

本提案では，ドローンと三次元の位置情報を用いたスポーツの提案として，まずはドローンを用いたパスキャッチの実現を目標とした．成果物として，プレイヤの位置情報を事前に取得し，プレイヤがスマートフォンを持ちながら投げる動作をすると，上空に飛んでいるドローンが相手の所まで飛んでいく仕まで飛んでいくパスキャッチを開発した．それぞれの課題は各班の項で記したが，本プロジェクトの活動としては当初の目的を果たすことが出来たといえる．

参考文献[1] Parrot Minidrones Rolling Spider (online)，様であるパスキャッチを実現させた．そこで，4 つの課題があ

入手先 (http://www.parrot.com/jp/products/rolling-げられる．

spider/) (2015.07.24)．

1 つ目として，三次元位置情報の活用である．現在のパス[2] JSON-RPC

キャッチが出来るプロトタイプでは前後左右の二次元の動き

手であるので，三次元の位置情報を扱っていない．三次元位置情(2015.07.24)．

報扱ったスポーツにするためにはその位置情報とスポーツの組み合わせ方と，その実装方法の検討が必要である．

2 つ目として，クライアントとして使うものの小型化である．スマートフォンを持った状態では落としたり人にぶつけてしまうといった危険がある．それらの改善のために小型化の手段を調べ，スポーツとしての安全性と自由度を考慮する必要がある．

3 つ目として，位置情報取得の精度が低いことである．ス
ポーツの要素として用いるためには取得の速さを向上させ，誤差を少なくしなければならない．

4 つ目として，提案のためのスポーツのルール制定でる．
現在はパスとキャッチの実現のみを行っており， 具体的なス
ポーツのルールや内容については触れていない．スポーツに応用できる技術を習得し簡単な対戦型の点数を競うスポーツを考案しなければならない．
これらの課題を改善し，ハンディキャップの差が生まれな
いドローンを使用したスポーツを提案と実現していきたい．

4 活動結果本プロジェクトでは位置情報と AR 技術やドローンを組み合わせた新しいサービスを提案，実現することが目的である．
目的実現のために AR 班とドローン班に分かれ実装を進めた．

AR 班では位置情報とブロック遊びを組み合わせたゲームの開発を進め，ゲームとして開発をすることが出来た．ブロックを置いたフィールドの色や周りのブロックとの位置関係で表示される 3D モデルの変化し環境を作るゲームを開発した．ドローン班では三次元位置情報とドローンを組み合わせた新しいスポーツの開発を進め，スポーツの基本となるパスキャッチ

先2.0

Specification(online)，入(http://www.jsonrpc.org/specification)