Distributed Systems Lab
 分散システム学研究室

2021年度卒研テーマ案

2021年3月に研究室配属予定の学部生(2018年入学生)向けの情報提供ページです. 翌年も同じようなテイストの研究テーマを提示する予定ですので, コース配属予定の学部生(2019年入学生)にも参考にしてもらえると思います.

A. Android MANET上のボイスメッセンジャーシステム

近頃,音声を使ったコミュニケーションが注目を集めています. ちょっと前にネットで話題になったClubhouseは 友人だけでなく面識のない人とも音声での会話を楽しむことができるSNSアプリケーションですし, Twitterでも音声によるツイート がオプションとして昨年夏からテストされており, 12月からは,Spacesという音声チャットルームのベータテストが開始されています. さらにはAmazon Alexaなどのアシスタントツールでは,コンピュータとの間の会話だけでなく, 各部屋に置かれたAlexaと家庭内の無線LANを通して インターフォンのような使い方 をすることが可能です. このテーマでは,AndroidデバイスをノードとするMANET(Mobile Ad hoc Network)を動的に構築し, その上で音声コミュニケーションを伴うSNSを 実現する方法について研究します.MANET上でライブビデオストリーミングを実現する方法については,うちの研究室で2年前に 実装しており,そのときはWi-Fi Directという技術を使ってネットワークを構成していました. 今回はそのときの経験をベースにして,SNSとしてのシステムの作り込みまでしていきたいと考えています. 音声エンコーダについて調べたり,音声メッセージの転送方法を設計・実装したりなど, 目的を達成するためにクリアすべき課題が具体的に見えているので,達成感やスキルの向上に繋がりやすいテーマだと思います (他のどのテーマ案ももちろんそうなのですが,このテーマは特にそう).

B. MQTTブローカーを使った位置密着型コミュニケーションツール

Bluetooth Low Energy (BLE)通信機能を備えたビーコンを空間に設置しておくことで, スマホを持ち歩くだけで,そのユーザが特定の場所にいることが検知できるようになります (同様の仕組みをスマホ同士の近接検知に利用しているのが, 新型コロナウイルス接触確認アプリのCOCOA3密チェッカーです). BLEビーコンの実装の一つであるiBeaconでは, 空間内に設置されたBLEビーコンからuuidという16バイトの固有の文字列が定期的に発信されているのですが, uuidの代わりにホームページのURL(や短縮URL)を発信するようにすることで,例えば ビーコンが貼り付けられた自動販売機に近づくだけでスマホのウェブブラウザに買い物リストが表示され, そこからウェブサーバ経由で発注をするなどの使い方ができるようになります (Googleが提唱しているPhysical Webがまさにそのような仕組みです). このテーマでは上記の仕組みをさらに発展させ,BLEビーコン経由で さまざまな位置密着型情報を発信・共有するシステムについて研究していきます. ビーコンとスマホの間は上で述べたようにBLE通信で結ばれるのですが,ビーコンとクラウドサーバの間は MQTTと呼ばれる IoT向けのデータ配信プロトコルで結ぶことを考えています. MQTTはウェブにおけるHTTPのようなプロトコルで,この研究では, ビーコンからクラウドサーバに向けての統計情報のプッシュや サーバからビーコンに向けての指示内容の伝達を MQTTブローカーと呼ばれるエッジサーバ経由で行うために使います.

C. Cloud Firestoreを用いたテレワーク環境の高度化

生活様式の変化に伴って,テレワークの普及が急速に進んでいます.ZoomやTeamsなどを使ったビデオ会議は (音声の途切れなどの若干の課題はあるものの)いまでもそれなりに機能していると思うのですが, 画面上での資料の共有方法には大きな課題が残っています. 具体的には,現在の多くの実装では発言者の「画面の共有」のみがなされており, そのため発言者が画面に対して行った操作が, 受信者の思考や意図とは無関係に受信者の画面上にダイレクトに反映されてしまっているのです (個人的には暴力的と感じることも多いです). 「資料のこの部分をズームしたい」とか「まだ読んでいるのでページめくりは少し待ってほしい」などの 受信者側のちょっとしたわがままを資料共有に柔軟に反映させる仕組みについて研究するのがこのテーマの目的です. 上記の着眼点の実現方法についてはいくつか考えていることがあって,そのうちの一つが,「資料コンテンツの共有」と「資料に対して 発言者が行った操作の共有」を分離し,後者のリアルタイムな共有をGCP (Google Cloud Platform)の Firestoreを用いて実現する方法です.受け取った操作列をそのまま受信者側のコンテンツに反映させる方法が Zoomなどの画面共有,受け取った操作列を完全に無視するのが(従来型の)オフライン共有とそれぞれ等価で, ここでは,その中間の上手いポイントを狙いに行くことになります.

D.WebRTCを用いたインタラクティブコミュニケーション基盤の実装

テレワークで用いられるビデオ会議システムはH.323などを使ってプロプライエタリに作られることも多いのですが,WebRTCのようなオープンソースのライブラリを使って サクッと実装することもできます(ZoomやTeamsはプロプライエタリソフトウェアですが,Google MeetではWebRTCが使われています). WebRTCには,ビデオストリームなどを流すためのメディアチャネルと データストリームを流すためのデータチャネルがあって, ブラウザベースのビデオチャットアプリでは,会話相手からメディアチャネルを通って送られてきた 動画をHTML5のvideoタグを使ってブラウザ上に埋め込んでいます. このテーマでは,WebRTCのデータチャネルをうまく利用することで, インタラクティブコミュニケーションの質を向上させる方法について研究します (データチャネルを活用した先行事例もたくさんあって,例えばAtomエディタのTeletype for Atomパッケージなどはそうです). このテーマに関してはこれまでにいくつか試したことがあって, 一つはマイクから収集される音環境情報を機械学習を使って分類し, その結果を画面の背景などに自動的に反映させる方法, もう一つは,話者が装着しているスマートウォッチなどの外部デバイスから(心拍数などの)情報を取得して 画面上のARキャラクターの動きに反映させる方法です. どちらもいい線まで行けているので,それらをベースにしてうまく完成度を高めて行ければと考えています.

過去の説明文

参考のため,過去の説明文も残していきます.
2020年度用の説明文はこちら
2019年度用の説明文は こちらです.

↑ PAGE TOP