SEQSENSEのクラウドシステムのアーキテクチャ
アーキテクチャの工夫ポイント
ロボットを制御するクラウドシステムとはどういうものか簡単に説明します。
ロボットを操作するためには「地点Aまで移動せよ」とか「充電のために帰還せよ」といったコマンドをロボットに送信します。その際、ロボットの周囲の様子を知るためにロボットに搭載したカメラの映像もリアルタイムに視聴できます。このようなカメラ映像を見ながら操作できるWebアプリケーションを警備室にいる警備員が操作して警備業務を行います。またロボットの位置情報など各種情報が随時クラウドシステムに送られてきます。
警備ロボットサービスのクラウドシステムはこのような仕組みをAWSの各種サービスを活用して実現しています。
クラウドシステムの主な構成要素として次が挙げられます。
- コマンドを送信したりロボットからの各種情報を受け取る相互通信
- 映像の保存や配信の機能
ロボットとの相互通信には AWS IoT を利用しています。クラウドシステムは主に Go で実装していますがロボットはそうではありません。異なる言語間でもIF定義を共有して通信するためにgRPCを採用しています。AWS IoT のプロトコルは MQTTのため、実際には gRPC over MQTT (HTTP/2の代わりにトランスポートプロトコルとしてMQTTを使用する)ということになります。
一方、映像の録画には AWS Kinesis Video Stream を利用しています。ロボットから SRTP でビデオストリームを受け、録画しつつリアルタイムの配信も行っています。
現在の課題と今後の改善予定
警備ロボット事業は着実に導入件数を増やしてきており、市場として成長しつつあると感じています。 それに伴い求められるユースケースが増えてきています。しばらくはこれらに対応するための開発が続くと思います。
また、警備ロボットで培った自律走行技術を活用して屋内配送ロボットサービスの開発も進めています。例えば警備では決まった時間に決まったルートを巡回することが多いのに対し、配送では定期的な配送もあるのですが、随時に任意の場所への配送が求められるなどユースケースが異なります。開発当初は警備サービスと同じAPIでロボットを操作していましたが、配送サービスに適したAPIを開発し移行を進めています。
いずれも新しい市場を作りながらの事業であるため試行錯誤しながら開発を進めているところです。それ故、サービス分野ごとに変わる部分と共通の部分の整理などサーバのリプレースや分割などを行い、必要に応じてアーキテクチャも見直す必要が出てくると考えています。
◆執筆:クラウドチーム バックエンドエンジニア 森下 泰光 GitHub : @HeRoMo
【サービス公式サイト】
公式サイト
アーキテクチャを構成するツール
会社情報
SEQSENSE株式会社
SEQSENSE株式会社は自律移動ロボットを利用した警備サービスをメインに開発、運営しています。 人口減少社会を技術で支え安全で便利な生活を続けられるよう維持する「世界を変えない」というミッションのもと、人手不足、高齢化が進む警備業界をロボットによる省力化で支えようとしています。 当社ではロボットのハードウェアからロボット上で動くソフトウェア、そしてロボットを制御するためのクラウドシステムまでのすべてを自社開発しています。