MAMORIO株式会社

MAMORIOを使って「なくすを、なくす」

MAMORIO株式会社では、MAMORIO(マモリオ)という落とし物防止タグを開発し、このタグをつけたモノを見守るサービスを提供している。
今回は、CTOの高野 政徳氏にオンラインにてお話を伺った。

MAMORIO株式会社は旧社名を株式会社落し物ドットコムといい、「落とし物ドットコム」という、失くした物を探しあうコミュニティサイトの運営から始まっている。
設立当初から一貫して「落とし物」という社会問題の解決をミッションとしており、課題解決に、人の力を借りる、技術の力で解決するなど様々なアプローチをとってきた。
2015年にiBeaconの規格が話題になりはじめ、これを使うとスマートフォンを使って失くしたものを見つけることができると考えてMAMORIOタグを作った。
このタグが好評を得たため、会社名もMAMORIO株式会社に変更した。

MAMORIO以前にも、QRコードやGPSといった技術を使った落とし物防止タグ「リターンタグ」を作っていたことがある。
これまでの知見に進化した技術を取り入れて、新たに作ったタグがMAMORIOである。

「マモリオの名前の由来はお守りです。
つけているだけで安心というとお守りかなと思ってこの名前にしました。
タグもお守りをイメージした形になっています。
最終的には世界展開したいという思いがあります。
日本は落とし物が善意で戻ってくる社会だと感じていて、他の国ではこのコンセプトを伝えても、落としたものが戻ってくることが信じられないという反応をされることもあります。
この日本の「落とし物が戻ってくる感」を世界に広めたいと思っています。」(高野氏)

MAMORIOのしくみ

MAMORIOはスマホアプリと連携し、位置情報と時刻を記録することにより、MAMORIOをつけたモノを見守っている。
スマートフォンとMAMORIOが一定距離以上離れた場合に、スマートフォンに通知する。
スマホアプリだけでなくスマートウォッチで通知を受け取ることも可能だ。

また、「みんなで探す」というユニークな機能もある。
これは他のユーザーが見失ったMAMORIOとすれ違った場合にサーバーに通知し、持ち主に知らせることができるという、ユーザー間で助け合う機能である。
高野氏が感銘を受けてジョインするきっかけとなったのが、この機能だそうだ。
「みんなで探すというコンセプトが良いです。
スマホの画面を見ているのは1日に2,3時間程度。
それ以外の時間帯、いわゆるスマホが「遊んでいる」状態の時に、スマホのCPUとかBluetoothのセンサーなどをちょっと間借りして、他の人の落とし物を探すことに協力できる。
アプリを入れることによって誰もそれと意識することなく社会貢献することができる。
美しい社会貢献だなと思って。」(高野氏)

近くにあるはずだが見つからない時は、ARを使ってスマホをかざしながら探すことも可能だ。
MAMORIOがある辺りにカメラを向けるとどこにあるか教えてくれる。

MAMORIOは経年劣化するため、半年以上使うと新しいMAMORIOを割引価格で購入できるチケットを配布している。
お守りを新しいものに交換するイメージから「OTAKIAGE(お焚き上げ)」サービスという名前がつけられている。

ユーザー層の広がりとともに新しいビジネスもひろがっている

メインユーザー層はガジェット好きな30~40代の男性だが、知名度が上がるにつれて、それ以外の層にも広がっている。
ショップチャンネルで紹介されると高齢者からの問合せが増えるなど、幅広い層で使われている。
他にも、MAMORIOを知ってくれていた警察から届けれらた拾得物にMAMORIOが入っていたと問合せが来たこともあるそうだ。

MAMORIOは様々なシチュエーションでの「見守り」に使うことができるため、色々なアイデアが寄せられるのだそうだ。
それらをもとに、他社製品にMAMORIO機能を組み込んだり、ノベルティ用途などでオリジナルタグを作ったりなどハード、ソフトともに協業もしている。

このように、B2Cだけでなく、B2BやB2B2Cのサービスも展開している。

企業向けサービスとしては、20xx年度Ruby Bizグランプリで特別賞を受賞した、MAMORIO Bizもある。
これは、MAMORIOのしくみを応用して、企業の備品などを管理する。
例えば、大量に保持している物品の数や場所の管理、建設機材や情報端末など社外に持ち出して使う物の持出履歴管理や位置情報管理などがある。
MAMORIOの主な対象としている個人の財布や鍵などと比べ、同一のものを大量に保持して管理というケースでは違う課題がある。

お客様から感謝状が届くことも

このサービスを作ったきっかけが、創業者が前職の先輩がカバンを失くして「死んじゃいそうなぐらい」落ち込んでいたのを見て、何とかできないかと考えたことだそうだ。
確かにモノをなくすと精神的ダメージはもちろんのこと、財布などの場合では、カード会社に連絡したり各種手続きに時間を取られてしまうが故に、見つかったときの嬉しさはとても大きい。

落とし物が見つかったユーザーからお礼メールが届いたり、感謝状をもらったこともあるそうだ。
「いただいた感謝状は嬉しくて社内に飾っています」(高野氏)
MAMORIOラボ( https://labo.mamorio.jp/ )では、このような「見つかった」体験をした人たちへのインタビューを記事にしたりもしている。
「意外と多くの方が見てくれています。」(高野氏)

MAMORIOラボでは、他にも落とし物に関する記事を掲載している。
「落とし物ってまだわかっていないことが多いです。
なぜ失くすのか。どれぐらい人とものが離れたり近づいたりしているのかなどわかっていないことが多いです。
これらを研究していて、他の人にも知って欲しくて公開しています。」(高野氏)

Ruby on Railsを使う上での工夫

サーバーサイドにはRuby on Railsを使っている。
MAMORIOでのRuby on Railsの使い方の特徴的なところとして、ActiveRecodのパフォーマンス改善とSTIをあげてくれた。

ActiveRecodのパフォーマンス

MAMORIOは通常のWebアプリケーションとアクセスの傾向が異なる。
MAMORIOタグのデータは、スマホアプリなどを経由して定期的にサーバーに送信されている。
このようなアクセスは、普段でも毎分約2000リクエスト程度処理する必要がある。
さらに、データはDBに保管する必要があるので、参照だけではなく複数のテーブルへの書き込みも発生する。

もちろん、通信量が増えるにつれて、DBを増強して対応する方法も考えられる。
とはいえ、運用にかかる費用的・人的コストは無視できない。
MAMORIOではどのような対応をしているかうかがったところ、ActiveRecordの使い方を工夫しているとのことだった。

DBアクセスでよく話題になるパフォーマンス上の問題に「N+1問題」がある。
ActiveRecordを素朴に使うとN+1問題が発生しやすいが、includesメソッドで他テーブルもJOINすることにより、クエリーの数を増やさないようにする、といった対策はよく知られている。
MAMORIOではその他にも、中間テーブルを使ったクエリーが発生する場合にも、必要のないテーブルをロードしないようにしたり、pluckメソッドを使って不要なActiveRecordオブジェクトは生成させないようにするなど、細かい工夫を行っている。

さらに、ActiveRecordやDBの利用そのものを抑制する工夫もしている。
サーバーに送られてきたMAMORIOタグのログから情報を集約しDBに保存する際、そのままActiveRecordを経由してDBに保存してから処理することも可能だが、そうするとDBアクセスが増えてしまう。
そこで、保存する前にログから抽出した情報を配列やハッシュの形で整理し、そこから必要な情報だけをActiveRecord経由でDBに保存させるようにする。
そうすると、アプリケーションサーバー側のメモリ使用量や計算量は増えるが、DBサーバーとのバランスやスケールアウトのしやすさを考えると、その方が全体としては最適化されるそうだ。

「一般的に処理が遅いといわれているRailsも、遅さの原因の多くはDBのIOであって、メモリを使って計算量を最適化すれば特に問題なく捌けるケースがほとんどなのではと思います。」(高野氏)

STI

「STIが好きでよく使っています」(高野氏)

MAMORIOに電池交換できるタイプが追加された。
電池の寿命をリセットできるものとできないものの2種類が存在することになり、データを変える必要が出てくる。
さらにスマートウォッチをビーコンに使用する場合はMAMORIOの電池の寿命という概念がなくなる。
電池交換ができる、できない、寿命がない3種類のMAMORIOができる。

「これらすべて別のクラスにすると管理が大変なため、差分の部分のみをもとのクラスに追加し、かつ、元のクラスに悪影響を与えないようににするとなったとき、STIがやりやすいです。」(高野氏)
1つのクラスの中で条件分岐すると、ロジックの見通しが悪くなる。
しかし、3種類のクラスに分けると、各クラスごとにテーブルを作ることになってしまう。
STIを使えば、テーブルは1つだけにしながら、3種類の違いをクラスとして表現できるようになる。

「スタートアップでは最初に設計したとおりの物と物の関係がずっと固定されるとは限らないし、そもそもほぼそうならない。
やっぱりこれもしたい、あれもしたいと、どんどん進歩していきます。
そういうことがあった時に、Rubyはコードを小さく保てるのが良いです。
例えば、MAMORIO Spotが導入されたとき、これは位置情報が固定されたデバイスと考えることができます。
そうすると、既存のデバイスの定義を少し拡張するだけで、MAMORIO Spotの機能が実現できます。
ビジネス側の要望で仕様の大きな変更があっても、コードの変更はそんなに大きくならなくて済んでいます。」(高野氏)

少人数で運用可能に

「平均年齢27歳の11人で物の製造から出庫から再購入の監視まで全部やっています。」(高野氏)

どのような工夫をしているのだろうか。その一例を挙げてもらった。

全国に散らばっているハードウェアもクラウドを使って遠隔監視

全国約700カ所の駅や商業施設のお忘れ物センターにMAMORIO Spotが設置されている。
お忘れ物センター届けられた忘れ物につけられているMAMORIOを、このMAMORIO Spotが検出して持ち主に知らせることができるという仕組みだ。
このMAMORIO Spotはぷらっとホーム株式会社のOpenBlocksを使用している。
OpenBlocksにはSIMが接続されているため、インターネット経由で監視することができる。
死活監視で異常を検出した場合、Slack経由で営業チームに通知され、設置場所の担当の方に連絡してリセットなどの対応をしてもらう。
自動化できるところは自動化し、どうしても人手が必要な部分のみ人間が対応する仕組みにしている。

機能追加などで、MAMORIO Spotに入っているソフトウェアも更新する必要が出てくる場合がある。
また、稼働中にそれぞれ置かれた場所の人口、人の流量などを考慮し、時間帯ごとに、送信間隔の調整をしている。
これらの設定内容の最適化もMAMORIO Spotへの反映も自動化している。

これらの変更やプログラムの更新をリモートから行うために、ぷらっとホーム株式会社のSaaSのリモートマネジメントサービス「AirManage」を導入した。
また、SORACOM社のSIMカードを使うことで、MAMORIO Spotの置かれている場所の状況に合わせて通信頻度を調整し、見合った契約に変更するなどということもリモートから行うことが可能だ。

このような工夫により、全国各地にある500台のMAMORIO Spotを2人で管理できている。

「少人数で対応するために自動化できるものは自動化するようにしています。
弊社はSaaSが好きですね。
なんでもかんでも内製せずに、物流はオープンロジさん、雑務はCASTER BIZさん、決済はPAY.JPさん、モノのセンサーの管理であればぷらっとホームさんなど、SaaSを活用しています。
業務をモジュール化して切り出し、API連携をして使っているのが、特徴的じゃないかなと思います。」(高野氏)
社内のメンバーがすることを明確にしてそこに集中する、それ以外のことは積極的に外部サービスを使う。

静的サイトはデザイナーだけで作る

これまでMiddlemanを使っていた静的サイトをStudioに置き換えた。
「社内では今、エンジニアからタスクをどんどん剥がすということをやっています。」(高野氏)
社員が増えて仕事を分担できるようになり、プログラマではない人たちだけでもWebサイトがつくれるようにしたかった。
WordPressではなく、Studioを選んだのは「今風」なデザインができるから。
昔からあるようなHTMLのタグを書くものではなく、スマホアプリのデザインをするような感じで、GUIでパーツを並べる感覚でWebサイトをデザインできる。
「デザイナーが普段モノを作りつつ、最新のデザインのトレンドをキャッチアップするのって非常に難しい。
なので、トレンドをキャッチアップしている集団に入ったり、サービス乗っかるのが非常に重要なんじゃないかなと思っています。
そういう意味で、サイトをリニューアルするのであれば、できるだけそういったモダンなデザインの潮流をキャッチアップしているサービスを使いたいというのがありました。」(高野氏)

ハードウェア

MAMORIOタグのハードウェアは自社で企画し、回路設計や製造は国内や中国、台湾などの他社に発注している。
「製造は他社さんにお願いしていますが、検品は社内のハードウェアエンジニアが実施しています。
以前、寿命1年の製品が2週間しか電池が持たなかったということがあり、小さなスタートアップでもここは自分たちで責任を持ってやらないといけないと実感しました。」(高野氏)

MAMORIOは何かにつけて使うものなので、なるべく小さく軽く、できるだけ長持ちするようにしたい。
そのような専用ハードウェアを作る上で気をつけたことを伺ってみた。

「ハードウェアは物理的にも小さく軽くすることを意識していますが、中に入れるソフトウェアもできるだけシンプルにするよう心がけています。
Bluetoothデバイス内部のソフトウェアを常に最新に保つのは難しく、バージョンアップした際に整合性をとるのが難しくなる」(高野氏)

他の端末とコミュニケーションをせず一方的にIDを送信するだけというiBeaconの規格を採用したのには戦略的な理由もあった。
これは競合製品と比較して1/4の大きさの電池を使用しながら同等の寿命を実現するには、できるだけ電池を消費せずに機能を実現する必要があると考えたからである。
そこで、システム全体からみると、可能な限りアプリやサーバー側のデータを解釈する側のソフトウェアで足りない部分を補い、どうしてもハードウェアから送ってくる必要があるデータのみをできるだけシンプルな形で送るという設計にしているそうだ。
一例をあげると、MAMORIOタグの電池の寿命のお知らせがある。
一般的にハードウェア側で電圧が一定以下になったことを検知して知らせるが、iBeaconではそういった異常事態を通常の発信とは別に伝えることができない。
しかし、MAMORIOは電池が切れたことに気がつかないのは致命的である。
そこで、サーバー側でMAMORIOから送られてくる通常のデータの送信状況や使い始めてからの経過日数などから電池の寿命が来ていることを予測してアプリから知らせるようにした。
ハードウェアのロット管理やIDの世代管理を細かくしているため、これらの情報も付加して検出の精度を高めることができているのだそうだ。

将来やりたいこと

最後に今後取り組みたいことを教えていただいた。

「サーバーはクラウドを使えば必要になった時に必要なだけ容量を増やすことは簡単にできるが、MAMORIOタグのようなモノの場合はそうはならない。
製造の都合もあり、一定数以上まとめて発注しなければならないし、製造には一定の時間がかかる。
適正在庫を保ち、いかにモノを滞留させないか、そういうことを今後やっていきたい。

また、モノの位置情報をもっと正確にかつ真に役に立つ形で提供できる表現を考えていきたい。
たとえば、建物の中にあるモノの位置情報を表現するためにはGoogleMapなどで用いられているような緯度経度以外にも『何階の?』『どの部屋に?』『いつ?』といった情報も必要だ。
それらの異なった尺度の情報をまとめるのは難しいが、地図上にあるビルをクリックするとそのビルの内部の見取り図が表示されて、モノがこの部屋にあるということがスムーズに表現できたら良いなと思っている。
」(高野氏)

他にも、インタビューの中で、ユーザーさんとのやりとりの中で色々なアイデアを思いついたり、ユーザーさんからも色々な使い方を提案されることもよくあるという話を伺ったりもした。
「なくすを、なくす」が実現する未来を心待ちにしている。

※本事例に記載の内容は取材日時点(2021年2月)のものであり、現在変更されている可能性があります。