ロボットをWebから自在に操る:Web Controller for V-Sido CONNECTを開発しました


Web Controllerスクリーンショット

ATOMOSは、ロボット制御システムV-Sidoを開発・提供するアスラテック株式会社様の依頼を受け、ロボット制御マイコンボードV-Sido CONNECTと連動し、Webアプリケーションからのロボットのリモートコントロールを実現する開発プラットフォーム「Web Controller for V-Sido CONNECT」(以下、Web Controller)、および同プラットフォーム上で実装されたロボット制御UIを設計・開発しました。

クライアント:アスラテック株式会社
技術設計・デザイン・Web UI実装:株式会社アトモスデザイン
Androidアプリ実装・Web API実装:株式会社ロバスト
アスラテック社によるプレスリリース


V-Sido CONNECTについて

V-Sidoは、人型ロボットの運動制御を行うOSです。(詳しくはこちらの記事を参照のこと。)ロボットの駆動装置の構成の差異を吸収し、二足歩行のロボットを安定的に姿勢制御でき、小型のホビー用から大型の搭乗可能なものまで多様なロボットを汎用的に制御できるソフトウェアです。

「V-Sido CONNECT」は、V-Sidoの機能をワンボードマイコンに収め、外部の機器から制御できるようにしたもので、ロボットのサーボに接続して利用することができます。3/9より、開発者の方へ向けて限定的な販売が開始されます。

Web Controllerについて

Web Controllerは、V-Sido CONNECTに接続できるAndroidアプリです。アプリをインストールすると、Android端末に対してWebアプリからインターネット経由で接続し、端末のカメラからの動画ストリームを見ながらV-Sido CONNECTを自由に制御できるようになります。

Web Controllerには、下記のような特徴があります:

  1. インターネット経由でロボットをリモートコントロール
  2. Web技術のみで構成、全機能をJavaScriptライブラリとして提供
  3. スマホをセンサーとしたイベント制御
  4. V-Sido/Web Controllerの機能を体感できる3D Web UI

1.インターネット経由でロボットをリモートコントロール

Web Controllerを用いることで、V-Sidoを用いた制御を遠隔地から実現できるようになります。Android端末のWeb Controllerアプリには、基本的にインターネットのどこからでもアクセスできます。それも、グローバルIPを持っている場合のみならず、LAN内のWi-FiでもLTEのモバイル回線でも、NATを越えて利用が可能です!(ネットワーク環境によっては通信が行えない場合もあります。)

これは、Web Controllerの通信技術にW3C標準であるWebRTCを用いていることによります。WebRTCでは、ICEというリモートの端末どうしをペアリングする仕組みを利用できます。この仕組みにより、ローカルアドレスしか割り振られていない端末どうしでもP2Pの通信を行うことができます。

WebRTCの性能は高く、Androidとクライアントの双方がLTEで接続されている場合でも、操作の反応が動画でフィードバックされるまでの時間差が200〜300msec、VGA動画が約20fpsという性能を実現できています。(性能は通信環境等に依存して変動します。)

Web Controller System Architecture

2.Web技術のみで構成、全機能をJavaScriptライブラリとして提供

上記のように、Web Controllerの中核をなす通信部分は、WebRTCを用いています。WebRTCは現在Chrome/Firefoxなどのブラウザでサポートされており、JavaScriptからペアリング/データ通信/動画ストリームなどの機能を利用できます。

Web Controllerでは、それらをラッピングしてAPI化したJavaScript APIを提供します。このAPIを用いることで、ほんの数行のコードで、V-Sidoの機能にアクセスして、ロボットを制御するWebアプリケーションを実現できます。もちろん、さらに自由に実装を行いたい場合には、WebRTC関連およびV-Sido CONNECTへのコマンド送信の実装をご自身で行うことも可能です。

Web Controllerを用いることで、すべてのWeb開発者の方に、ロボット開発への扉が開かれます。

3.スマホをセンサーとしたイベント制御

Androidアプリは、スマホのセンサーやネットワーク等のハードウェアの状態を取得し、UIに表示することができます。スマホがロボットのセンサーとして働くようになります。

Web Controllerでは、これらのセンサー値の変化や、スマホの状態変化をイベントとして設定し、ロボットやスマホにアクションを実行する簡単なマクロを組むことができます。ロボットのプログラミングを、どなたでもすぐにご体験いただけます。

4.V-Sido/Web Controllerの機能を体感できる3D Web UI

このようなWeb Controllerの機能を体験していただくために、同プラットフォームの機能を網羅したWeb UIを提供します。Web UIを用いることで、ロボットの制御/スマホイベントの閲覧/マクロの設定と実行などを行うことができます。

UIにはリアルタイム3Dグラフィックを用いていますが、この部分のWebGLを含め実装はHTML/JavaScript/CSSのWeb標準のみで行っています。UIはMac/Windows/Linux/ChromebookのデスクトッププラットフォームおよびAndroid上のChrome/Firefoxで動作します。

操作は、マウス/キーボードに加えて、タッチパネルおよびゲームコントローラー(DirectInput対応Xbox 360互換製品)を用いて行うことができます。

まとめ:ありえないほど手軽なロボットアプリ開発環境

Web Controllerの設計・開発にあたって重要だったのは、弊社がロボット開発に関するノウハウやスキルを一切持っていなかったことです。だからこそ、自分達のようにWebやアプリのフロントエンドを生業にしている開発者が、どうすればロボットを扱えるようになるか、考えることができました。Web UIはデザインから実装まで弊社で行っており、結果スムーズにロボットを動かすUIが実現できました。これが、Web Controllerでできることの何よりの証明かと思っています。

Web Controllerは、ロボットに少しでも興味のあるすべての開発者の方に向けられたものです。Web開発の手法で、これだけ高度なロボット制御ができる開発環境は、私の知る限り今のところ世界にも類がありません。

また、強調しておきたいのですが、ロボット/V-Sido CONNECT/スマホの全てを組み合わせても、20万円程度でロボットアプリの開発環境が整います。開発したアプリは、今後普及が見込まれるV-Sido OS対応のロボットにて動かすことができるようになります。

今日からロボット開発への扉が開かれます。もう待つ必要はありません。