【インターンシップでの開発アプリ紹介】Pepper向けアラームアプリ

1.はじめに

こんにちは。慶應義塾大学商学部4年生のサカイリです。

大学では計量経済学を専攻しています。
簡単なプログラミング経験がありますが、基本的には無縁の生活を送っております。

2.インターンシップに参加した理由

このインターンシップは、
Facebookで「Pepperのアプリ開発」という広告を見たことがキッカケで知りました。

当時、ちょうどPepperに対して強い興味を抱き始めた頃だったので、
「これは参加したい!」と思いました。

そこで、インターンシップの内容とともに、イサナドットネットについて調べていくうちに、より強く参加したいと思うようになりました。

具体的には、
「IoTやロボティクスという分野に注力している会社であること」
「働きやすそうな環境の会社であること」
が大きな理由でした。

前者については、私が将来活躍していきたいフィールドと合致していましたし、後者については、私が企業選びをする上で大切にしている軸だったからです。

3.インターンシップの課題

私が制作したのは、
“アラームアプリ”です。

私が普段、就寝前にしている一連の流れをアプリに組み込むことで、毎日行っている作業を簡略化できないかなと考えました。

まず、基本的な機能として

①  翌日の予定を確認する
②  移動時間を算出する
③  起床時刻を逆算して起こしてくれる
を作成し、

更に、Pepperならではの機能を活用するため、

④  音声認識を用いてアプリの基本操作を行う
⑤  表情認識を用いて笑顔にならないと起こすのをやめない機能
⑥  動体認識を用いて二度寝センサー搭載スヌーズ機能
を盛り込みました。

各機能をより具体的に紹介すると、

①  Google Calendar APIから、翌日の予定(開始時刻・場所)を取得。
②  Google Maps Distance Matrix APIから、家から予定の場所までの移動時間を取得。
③  起床時刻を「開始時刻−(移動時間+1時間)」として設定し、時刻になったらアラームを鳴らす。
⑤  表情認識によって、笑顔度を測定し、一定の笑顔度を超えていたらアラーム停止。
⑥  動体認識によって、一定時間内にどれだけの動きがあったかを測定し、一定値を超えなければ二度寝したと判定→アラーム再開。

という流れになります。

⑥ のスヌーズ機能については、”ワンルームでの利用”を想定し

「一定時間内に、部屋の中である程度の動きが観測されなければ、それは二度寝してるんじゃないか?」

という仮説を立てて作りました。

普通のスヌーズ機能だと、最初にアラームを止めるときについついスヌーズ機能も切っちゃったりして、意味なかったなんてことがあります。(私だけですか?)

今回のスヌーズ機能では、
「二度寝したかどうかをロボットが勝手に判定する」ので、
二度寝してなければそのままアプリが停止し、
二度寝していればアラームが再開するようになっています。

これぞ、本当に求められているスヌーズ機能だ!
と私は思っています。

ちなみに、起床時刻になって起こすときに、Pepperがゴリラの動きをしていますが、この動きはサンプルとして用意されています。

使い道そんなになさそうですが…。

4.インターンシップを終えて

5日間のインターンシップ期間中、開発するのは実質的に4日間で、前半2日は順調に進みましたが、3日目は一切作業が進まないなど、困難も経験しました。

それでも粘りに粘った結果、その困難を乗り越え、当初計画していたすべての課題を達成できました。
4日目で困難を乗り越えた時の達成感は、非常に大きいものでした。

また、2日目まででおおよその形を作り終えていたので、3日目と4日目は細部にこだわったり難しいことに挑戦したりといった時間に充てられましたし、冷静さを失わずにいられました。

この経験を通じて、仕事をする上で大切だなと感じたことが2つあります。

まず、先にある程度の全体像を作り上げてから細部に手を出すことで、スケジュール管理がしやすいと感じました。

私の場合、2日目までで一応デモを披露できるような状態だったので、前述の困難に対してどれだけの時間を割けれるかの見通しが立てやすかったです。
なので、全力で困難にぶつかることができました。
もし1日目からそれに挑戦していてうまく行かなかった場合、完成までこぎつけられなかった可能性もあります。そう考えると、全体像を作っておくことは大事だなと感じました。

そして、困難にぶつかっても、地道に対応することで乗り越えられるということを感じました。

3日目はエラー、エラー、エラー…の連続でくじけそうになり、エラーに立ち向かわないで楽な(エラーのでない)サンプルコードを探すことに必死でした。
しかし、4日目から、エラー1つ1つをWebで検索し、解決法を探して、解決したら次のエラーを解決して、ということを地道に繰り返すようにしました。

すると、最後にはエラーが出なくなり、うまく機能を実装できました。

文字で書くと簡単そうですが、解決法を探すためにエラー1つにつき1時間かかったりもして、本当に地道な作業でした。

それでも、最終的には難しく見えたコードも解読できるようになったりして、
実装の成功だけでなく、自分自身の成長も感じることができました

5日間という短い期間でしたが、とても大きな達成感が得られて、非常に充実した5日間となりました。メンターの方をはじめ、イサナドットネットの皆さま、本当にありがとうございました!

5.最後に

インターンシップのサカイリさんの体験記をブログとして掲載させていただきました。

ロボットが日常生活のあらゆる場面で私達を助けてくれる、そんな未来が近々やってくることを感じさせるアプリを開発していただきました。

ロボットと人間が一緒に生活している場面を具体的にイメージして開発する姿が印象的でした。

そのような視点を大事にして今後もたくさんアプリ開発をしてもらえたらなと思います。
 

isana.netでは積極的にインターンシップを受け入れ中です。

ご興味持った方はisana.netまでお問い合わせ下さい。
詳細・お問い合せはこちら

イサナドットネット全員でお待ちしております。

%d人のブロガーが「いいね」をつけました。