【関連】ROSの環境を自分で揃えるにはこちらの記事を参考にしてください。
そこで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を使った開発を行うにあたってデバイスやセンサーを用意したりする手間なく、クラウドで開発をスタートしてみたい方にいい選択肢になりそうです。
]]>