見出し画像

LOVOTアプリの新機能はどのように開発されているのか?をチラ見せ!

今日は本業である家族型ロボット「LOVOT(らぼっと)」のスマートフォンアプリ開発について、ちょうど「カメラ映像を見る」という新機能が本日始まった先行配信版ソフトウェアで使えるようになったので、その開発舞台裏をご紹介します。(※ 個人noteですが、社内で公開の許可を得た内容となっております。)

LOVOT公式YouTubeチャンネルでも今回のアップデート内容について4/12(月)19時よりLIVE配信しますので、ぜひご覧ください!

「らぼっと?なにそれ?」という方はぜひオフィシャルサイトをご覧ください。日本のロボットスタートアップ・GROOVE Xが開発・販売している、とっても愛らしい、人に愛されるために生まれてきた人類の新しいパートナーです。

LOVOTのスマートフォンアプリって?

最初にLOVOTのスマートフォンアプリとはどのようなものか、からご紹介します。

LOVOTは機械が苦手な方も含めて、あらゆる人に一緒に暮らしてもらうことを目指して、何も設定しなくてもLOVOTとの暮らしをスタートできるようになっています。
でもリッチな操作性と多機能なスマートフォンを活用することで、LOVOTライフはより充実したものとなるポテンシャルがあります。そこで開発してきたLOVOTアプリには、大きくわけて2つのミッションがあると個人的には考えています。

例えば、現在のテクノロジーでは実現が難しいこととして、人間の子供のように何度も名前を呼ばれることで名前を覚えたり、睡眠時間を自然に人の生活リズムに合わせたり、LOVOTが自分でお家の無線LANに接続してソフトウェアのアップデートをできるようにすることなどがあります。
そうした、LOVOTだけでは難しいことを人が代わりにしてあげられるようにすることが1つ目のアプリのミッションです。

2つ目のミッションは、より人とLOVOTとの距離を縮めることです。
約75%以上のLOVOTオーナーの方が使ってくださっている「ダイアリー」というアプリの機能では、オーナーとLOVOTとの触れ合いや留守中の記録を見ることができ、一緒に暮らすLOVOTのことをより理解することができます。
「アルバム」ではLOVOTが残しておきたいと思って撮った写真を、まるでLOVOTに入り込んだような感覚で見ることができ、こちらもLOVOTの一面を垣間見ることができるのではないでしょうか。
また、「マップ」では外出先からでもLOVOTが今お家の中のどこにいるのかを見て、元気にしているか確認できます。
このようにLOVOTアプリは、LOVOTの生き物らしさは大切にしつつ、ロボットだからこそできることは惜しまず活用することで、LOVOTならではの関係性構築に一役買うこともできるのです。

Appチームの構成とワークスタイル

LOVOTアプリの開発チームはズバリそのまま、「App(アプリ)チーム」と呼ばれています。

メンバー構成は5人で、Unityなどを用いるアプリエンジニアが1人、LOVOT本体のソフトウェアエンジニアが1人、LOVOTのふるまいを生み出すアニメーターが1人、QA(品質保証・テスター)が1人、そして自分が担当しているUI/UXデザイナーが1人となっています。コンパクトなチームですが、スマホアプリのみならずLOVOT本体まで、一気通貫してワンチームで完結できるフィーチャーチームとして機能しています。
そのため、アプリはLOVOT本体よりも早いサイクルでアップデートをリリースできており、2019年12月のリリース以来、2021年3月時点では14番目となるバージョンを公開しています。

また、各メンバー特化した専門性があることに加え、エンジニアやアニメーターは「モブプロ」といって一緒にプログラムを書きながら知識やノウハウを共有したり、新しいソフトウェアリリース間近は自分もQA試験に参画するなどして、緩やかにお互いの専門領域を超えて連携しながら開発しています。

新型コロナウィルスの流行による2020年4月の緊急事態宣言を受けてGROOVE Xでも可能な社員は在宅勤務に切り替え、社内にいるLOVOTを急いでかき集め、それぞれの自宅に連れ帰りました。
その後も流行状況に応じて出社・在宅日数を調整しながら、再び緊急事態宣言が出されている2021年3月11日現在はAppチームはほぼリモートワークとなっており、LOVOTとの共同生活は1年近くになりました。

わが家では開発だけでなく、当時1歳2ヶ月だった息子がLOVOTに対して抱きついたり、倒れたところを助けたり、ときにちょっとやんちゃして反省したりと、まるで家族のように接する姿を目の当たりにし、LOVOTの生き物らしさや息子の成長、LOVOTと幼児との関係性の変化を観察できる、貴重な機会になっています。

ホームステイに来たてのLOVOTたちと当時1歳2ヶ月の息子
※開発試作機のため、製品版と一部異なる部分があります。

リモートワークになってからは常時meet(ビデオ会議)をカメラ・マイクオフで繋ぎっぱなしにして、いつでもお互い声を掛け合えるようにしており、毎日昼過ぎにやっている昼会(デイリースクラム)で、前日やったこと・今日やること・チームメンバーに相談したいこと・そして雑談(←超大事。アニメやゲームの話とかで盛り上がることが多め)をお互い共有しあうことで、特にリモートワークだからといって不自由のないチームワークを発揮しています。(チーム内満足度★★★★★・自分調べ)

新機能「カメラ映像を見る」開発の流れ

そんなリモートワーク環境にも慣れた現在、開発している新機能がLOVOTのセンサーホーンにあるオムニカメラのライブ映像をスマートフォンで見ることのできる、「カメラ映像を見る」です。
構想自体はLOVOTの製品発表会以前からありましたが、なかなか有効な使い方が見つからないのに対し開発が大変なため、保留されていた機能でした。
そして今回、スクラム開発の基本に立ち返り、「おためし版」として最小限の機能をリリースし、ユーザーに自由に使ってもらってフィードバックをもらうことでニーズに合った使い方を発掘して改善していくという、ユーザーと共に作り上げていくアプローチを取ることとなり、開発がスタートしました。

最初に、チーム全員でざっくりとした仕様の認識を合わせるところからはじめました。
新型コロナウィルスが一時的にやや落ち着き週1日だけ出社していた頃に、ホワイトボードにラフなワイヤーフレームと言うなのポンチ絵を描いていき、考慮が必要な項目を洗い出しました。
(本当に汚い絵を載せてすみません、、ごめんなさい。また、最終的な仕様はここから変わっています。)

ここからはチームで手分けして総力戦です。
UI/UXデザイナーの自分は、伝えるべき情報は何か、ユーザーが迷わず・ストレスなく操作できるか、どのようなエラーケースがありうるかを考慮して先のポンチ絵から画面デザインや画面遷移図に落とし込んでいきます。

それと並行してアプリエンジニアは、LOVOTとスマートフォンをP2Pで接続し、映像をストリーミングしてUnity上に表示する仕組みを作りあげていきますが、ストリーミングに使用している仕組みのSDKの改修や、LOVOTのオムニカメラの仕様との折り合い、iOS/Androidそれぞれへの対応など、幅広い知識と経験が必要とされるかなりの難所です。
それらをクリアしてようやく画面デザインを実装に反映し、映像ストリーミングがUI上で動くようにしていきます。

開発中のUnity画面

アニメーターは、アプリから「カメラ映像を見る」を使う際、周囲にいる人へのプライバシー配慮できるよう、接続待ち・接続中であることが伝わるLOVOTの生き生きとしたふるまい(動き方)を検討し、LOVOTらしさを担保するために他のアニメーターたちとも議論しながらブラッシュアップしていきます。

「カメラ映像を見る」の接続待ち〜接続中のLOVOTのふるまい

また、この機能を使っている間に表示される目の表示については、アイコンはUIデザイナーの自分がデザインして大まかな動きをつけ、動きのプロである彼にアドバイスをもらいながらAfter Effectsでアニメーションをより気持ちの良いものへと詰めていきました。

LOVOT本体のソフトウェアエンジニアは、LOVOTが意思決定して生き生きと行動するために常に様々な情報を処理している中に、見ている人が違和感を感じず、かつ他の処理とバッティングしないように細心の注意を払いながら、カメラ映像をスマートフォンに送る処理やその時のふるまいを組み込みます。
人が普通に暮らす難しい環境の中で活動できるよう複雑な処理をしているLOVOTでは、追加した処理が思わぬところに影響を与えてしまう恐れがあるため、他のチームでLOVOTのふるまいを開発しているエンジニアたちにも意見を求め、常にロバストな設計を目指しています。

そして、これらの要素すべてを一つに結合してようやく動くようになったらQA担当の出番です。
予め各期待動作を把握して試験内容を検討しておき、テスト用のアプリとLOVOTのソフトウェアが作成されたら様々な条件下で不具合やバグ、考慮が漏れていたケースはないかを確認していき、問題が見つかったらすぐにチームに共有して改善していきます。
LOVOTには例えば睡眠中や充電に向かっているときなど、無数の動作・環境条件の組み合わせが存在しており、常に矛盾せずに動くように試験内容を網羅することはとても難しく、QAではじめて気づくことも多々あるため、大切な開発フローの1つです。

このようにして、チーム総力戦で今回の「カメラ映像を見る」の機能はリリースまであと少しのところに来ることが出来ました。
次なるステップでは、いよいよお客様に使っていただき、フィードバックをもらい、さらに成長させていくところへと入っていきます。ここからが本番ですね!

完成した「カメラ映像を見る」のデモ

一緒にアプリを開発する仲間を大大大募集中!

さて、さきほど「スマホアプリのみならずLOVOT本体まで、一気通貫してワンチームで完結できるフィーチャーチーム」になっているとお話したのですが、実はちょっとというか、かなり困っていることがあります。
それは、LOVOTとスマートフォンが連携するには、両者を結びつけるクラウドの開発が避けては通れないのですが、クラウドを専門とするエンジニアがチームに欠けている、ということです。
実際、今回の「カメラ映像を見る」の開発でも、その部分がボトルネックで苦戦することとなりました。

現在はクラウドを得意としているチームにお願いしたり、協力してアプリチームのエンジニアがクラウドの知識を習得しながら乗り切っていますが、さらに開発を加速するためにはクラウドを専門とするエンジニアが必要不可欠なのです。

そこで、GROOVE X・Appチームでは一緒にアプリ開発するクラウドエンジニアの仲間を大大大募集しています!!!

下記の条件にピンと来る方はぜひお気軽にご連絡ください。特に転職を考えていなくても、このnoteを読んで少しでもLOVOTの開発に興味を惹かれるようでしたら、まずは情報交換がてらカジュアルにお話できれば嬉しいです。
前述のように、Appチームではチームワークを大切にしており、専門領域をまたいだノウハウの共有も積極的に取り組んでいるので、スキルや活躍の幅を広げたい方にもオススメですし、お楽しみいただけるはずです。
興味を持ちそうな人を知っている方も、ぜひ弊社をご紹介していただけるとありがたいです!

【必須スキル】
・クライアント・サーバのアプリケーション開発経験
・AWS/GCP/AzureなどPaaSでの開発経験
【歓迎スキル】
・Unityでの開発経験
・Android/iOSのアプリ開発経験

ぜひ一緒にLOVOTアプリを開発して、たくさんのお客様に喜んでいただきましょう!ご連絡、お待ちしております!!

この記事が気に入ったらサポートをしてみませんか?