Spotは付属する専用のコントローラーでも操作可能だが、外部機器と連係させて、開発者の思い通りの操作をするには、パソコンからのコマンド操作が必要だ。Spotを専用コントローラー以外の機器を使って制御する場合は、パソコンなどで動作するプログラムからWiFiまたはEthernetケーブルを介してSpotのサービスを呼び出す。
サービスのAPIの呼び出しには、gRPCという手続きを用いる(図1)。gRPCは米Googleが自社サービス開発用に開発したRPCの一種で、クライアント-サーバー型の通信プロトコルである。
gRPCは特定の言語やプラットフォームに依存しない設計となっており、さまざまな言語向けにクライアントやサーバーを実装するためのライブラリーが公開されている。例えば、CやC++、C#、Objective-C、Java、Python、Node.js、Rubyなどから利用可能だ。プロトコルスタックはHTTPをベースとした構造となっている。Spotの場合は、Python用の開発パッケージが用意されており、gRPCの存在を意識することなくPythonでサービスを呼び出しながらのアプリケーション開発が可能となっている。
10種類のサービスで制御
gRPCを使って利用できるSpotのサービスとしては、大きく9種類が用意されている。「GraphNav」「Missions」「ChoreoGraphy」「Docking」「State」「Control」「Data」「Base」「Payloads」である(図2)。
Spotのプログラミングを行う場合は、これらのサービスを呼び出しながら、一連の動作をさせることになる。なお2021年2月に新たなサービスとしてオプション機能であるロボットアームを操作する「Arm」が追加されて10種類となった(別掲記事「Spotにドアや弁を開閉可能な手が登場、人との協働への配慮は薄い」参照)。
それぞれのサービスの内容をまとめると以下の通りになる。