AWS RoboMakerはクラウドベースのROS(Robot OS)の開発、シミュレーション環境になります。ROSを試すだけであればUbuntuなどにインストールすればいいですが、モジュールであったり、ロボット本体を用意するとなると大変です。

そこでAWS RoboMakerではシミュレーション環境を用意し、動作の確認もクラウド上で行えるようになっています。今回はAWS RoboMakerを軽く体験してみます。

シミュレーションジョブの作成

AWS RoboMakerにログインして、まずはシミュレーションジョブを作成します。シミュレーションジョブでは実行時間、失敗時の動作、ROSディストリビューションの選択、IAMロールの作成などを行います。

シミュレーションジョブは5分〜14日間の間で自由に決められます。それが過ぎるとステータスが完了になります。一度完了したジョブはクローンして実行はできますが、同じジョブの再実行はできません。

今回はサンプルアプリケーションからHello Worldを選んで実行しました。

なお、シミュレーションジョブは削除できないようです(その内消えるのかも知れません)。

シミュレーションの使い方

シミュレーションの中では4つの実行環境を試せます。

  • Gazebo
    3Dを用いてロボットの動作を確認、オブジェクトの配置などができます。
  • rqt
    ロボットの操作、カメラ情報を取得したりできます。
  • rviz
    ロボットのカメラ映像を確認できます。センサーの値も確認できるようです。
  • ターミナル
    いわゆるターミナルです。ロボットの中に入ってコマンドを実行できます。

いずれもビジュアル化されており(ターミナルを除く)、VNC的な表示で確認できます。マウス操作も可能です。

ターミナル。

Gazebo。オブジェクトを配置しています。

rqt。ロボットを操作しています。

rviz。

開発はCloud9で

ROSの開発を行う際には、EC2のインスタンスを立てて、Cloud9を使って開発するようです。デフォルトでm4.largeインスタンスですが、t2.microから選択できます。また、ROSのディストリビューションはKineticまたはMelodicが選べ、β版ですがDashingも選択できます。

Cloud9からシミュレータで実行できるはずなのですが、筆者が試した限りではエラーが出てしまいました。

デバイスとの接続、デプロイはAWS IoT Greengrassにて

シミュレーションではなく、実デバイスも用いる場合にはAWS IoT Greengrassで接続します。AWS RoboMakerの管理画面上からAWS IoT Greengrass用の証明書を発行できるので、画面を行ったり来たりしないのは便利です。また、フリートと呼ばれる複数のロボットを管理する仕組みも用意されています。

アプリケーションのデプロイもAWS RoboMakerから行います。フリートとアプリケーションを選択してデプロイを実行します。

このようにAWS RoboMakerはクラウド上での開発と実機デバイスへの反映まで一通り行えるのが魅力となっています。

注意点

AWS RoboMakerで作成したリソース(S3、EC2、Cloud9、IAMなど)はAWS RoboMaker上では削除できないようです。シミュレーションジョブが完了しても、シミュレーションアプリケーションなどのリソースは削除されないので注意してください。

まとめ

AWS RoboMakerはAWS IoT GreengrassやCloud9をはじめ、AWSの各サービスをロボティクス開発に活かすためのリソースを集約したハブ的機能と、エミュレータによる開発支援が合わさったサービスとなっています。ROSを使った開発を行うにあたってデバイスやセンサーを用意したりする手間なく、クラウドで開発をスタートしてみたい方にいい選択肢になりそうです。


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *